Программирование | Отладка | Web-технологии | Microsoft Office | Теор.информатика | Исслед-е операций | Операц. сис-мы | Новости |
Проектирование ИС | Исск. инт-т | Трансляторы | Об авторах | Карта сайта | Поиск |
Язык программирования Turbo Pascal |
Среда программирования Delphi 6 |
Язык программирования C++ |
Язык программирования C# |
Язык программирования Assembler |
Язык программирования Go |
Язык программирования Haskell |
Язык программирования Java |
Язык программирования Kotlin |
Язык программирования LISP |
Язык программирования Prolog |
Язык программирования Python |
Параллельные алгоритмы |
Сети Петри |
Начала |
Отладчик Turbo Debugger |
Основы HTML |
Технология Flash |
Язык программирования Perl |
Основы языка PHP |
Основы PhotoShop |
Основы JavaScript |
Основы CSS |
Основы CorelDRAW |
Библиотека jQuery |
Текстовый процессор Microsoft Word |
Электронные таблицы Microsoft Excel |
Система управления базами данных Microsoft Access |
Использование VBA в Microsoft Excel |
Место информатики в системе наук |
Общие сведения об информации |
Кодирование информации в теории Шеннона |
Основные понятия теории алгоритмов |
Классические формализации понятия 'алгоритм' |
Понятие рекурсии |
Сложность алгоритма |
Методы разработки алгоритмов |
Сложность задачи |
Информационное моделирование |
Основные понятия теории графов |
Алгоритмы поиска на графах |
Матроиды. 'Жадные' алгоритмы |
Динамическое программирование |
Алгоритмы |
UNIX и Linux |
Унифицированный язык моделирования UML |
Введение в машинное обучение с использованием Python |
Основы создания нейросети на Python |
Глубокое обучение на Python |
Начала |
Динамические структуры данных |
Библиотека RX |
Основные классы и события Delphi |
Основные компоненты Delphi |
Организация потоков |
Технология COM |
Язык программирования Object Pascal |
Локальные БД в Delphi |
Библиотека OWL |
Библиотека Qt |
Библиотека STL |
Библиотека шаблонов классов Borland |
Основы компьютерной графики |
Динамические структуры данных |
Начала |
Обработка исключительных ситуаций |
Оптимизация с помощью ассемблера |
Основы объектно-ориентированного программирования |
Потоки ввода-вывода |
Разное |
Редактор Resource Workshop |
Среда Visual C++ |
Программирование в Microsoft Visual C++ 2010 |
Технология CUDA |
Технология OLE |
Начала |
16-битное программирование |
32-битное программирование |
Основы логического программирования |
Динамические структуры данных |
Visual Prolog |
Библиотека PyQt5 |
Библиотека Tkinter |
Визуализация данных |
Начала |
Задачи ComputerScience |
Рекурсия |
Однострочники |
Вкладка RXControls |
Вкладка RXDBAware |
Вкладка RXTools |
Вкладка Standard |
Вкладка Additional |
Создание Internet-приложений |
Вкладка System |
Вкладка Win32 |
Вкладка Servers |
Технология ADO |
Вкладка QReport |
Вкладка InterBase |
Вкладка Dialogs |
Начала |
Среда программирования. Язык С/С++ |
На этом шаге мы рассмотрим функции получения итераторов.
Множества и мультимножества не обеспечивают прямого доступа к элементам, поэтому для такого доступа приходится использовать итераторы. Множества и мультимножества поддерживают стандартный набор операций для получения итераторов (таблица 1).
Операция | Описание |
---|---|
c.begin() | Возвращает двунаправленный итератор для первого элемента (элементы считаются константными) |
c.end() | Возвращает двунаправленный итератор для позиции за последним элементом (элементы считаются константными) |
c.rbegin() | Возвращает обратный итератор для первого элемента при переборе в обратном направлении |
c.rend() | Возвращает обратный итератор для позиции за последним элементом при переборе в обратном направлении |
Множества и мультимножества, как и все остальные классы ассоциативных контейнеров, поддерживают двунаправленные итераторы. Такие итераторы не могут использоваться алгоритмами, рассчитанными на итераторы произвольного доступа (например, сортировки или случайной перестановки элементов).
Но еще более важное ограничение заключается в том, что с точки зрения итератора все элементы считаются константными. Это необходимо для того, чтобы программа не могла нарушить порядок следования элементоп, изменяя их значения. Однако в результате для элементов множества или мультимножества вызов модифицирующих алгоритмов становится невозможным. Например, удаление элементов не может осуществляться алгоритмом remove(), потому что "удаление" в действительности сводится к перезаписи следующими элементами (данная тема подробно обсуждается на 108 шаге). Элементы множеств и мультимножеств удаляются только функциями, предоставляемыми контейнером.
На следующем шаге мы рассмотрим вставку и удаление элементов.