- •ВВЕДЕНИЕ
- •КЛАССЫ
- •Описание объектов
- •Указатель this
- •Конструкторы
- •Конструктор копирования
- •Статические элементы класса
- •Статические методы
- •Дружественные функции и классы
- •Дружественные функции
- •Дружественный класс
- •Деструкторы
- •Перегрузка унарных операций
- •Перегрузка бинарных операций
- •Перегрузка операции присваивания
- •Перегрузка операции приведения типа
- •НАСЛЕДОВАНИЕ
- •Ключи доступа
- •Простое наследование
- •Правила наследования методов
- •Абстрактные классы
- •ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ
- •Синтаксис исключений
- •Перехват исключений
- •Список исключений
- •Иерархии исключений
- •СТАНДАРТНАЯ БИБЛИОТЕКА
- •Форматирование данных
- •Флаги и форматирующие методы
- •Манипуляторы
- •Методы обмена с потоком
- •Файловые потоки
- •СТРОКИ
- •Операции
- •Функции
- •Преобразование строк
- •Поиск подстрок
- •Сравнение частей строк
- •Получение характеристик строк
- •КОНТЕЙНЕРНЫЕ КЛАССЫ
- •Последовательные контейнеры
- •Векторы
- •Двусторонние очереди
- •Списки
- •Ассоциативные контейнеры
- •Словари
- •Словари с дубликатами (multimap)
- •ПРИЛОЖЕНИЕ 1. ШАБЛОНЫ ФУНКЦИЙ
- •ПРИЛОЖЕНИЕ 2. ШАБЛОНЫ КЛАССОВ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
size_type erase (const key_type & x);
void erase (iterator first, iterator last);
void clear( );
Первая форма функции insert используется для вставки в словарь пары «ключ-значение». Функция возвращает пару, состоящую из итератора, указывающего на вставленное значение, и булевого признака результата такой операции: true, если записи с таким ключом не было(только в этом случае происходит добавление) и false в противном случае(итератор указывает на соответствующую запись).
!!! Скорректировать существующую запись с помощью функции вставки нельзя. Это делается с помощью операции по индексу.
Вторая форма функции вставки применяется для ускорения процесса вставки. С этой целью ей передается первым параметром позиция словаря, начиная с которой требуется осуществлять поиск места вставки.
Третья форма функции вставки используется для вставки группы элементов, определяемой диапазоном итераторов.
Для обмена всех элементов двух словарей применяется функция swap: template <class Key, class T, class Compare>
void swap (map <Key, T, Compare > & x, map <Key, T, Compare> & y);
Функция equal_range возвращает пару итераторов(lower_bound (x), upper_bound (x)) для переданного ей значения x:
pair <iterator, iterator> equal_range (const key_type & x);
pair <const iterator, const iterator> equal_range (const key_type & x) const;
После вызова оба итератора будут указывать на элемент с заданным ключом, если он присутствует в словаре, или на первый элемент, больший него в противном случае.
Словари с дубликатами (multimap)
Словари с дубликатами допускают хранение элементов с одинаковыми ключами. Поэтому для них не определена операция доступа по индексу[ ], а добавление с помощью функцииinsert выполняется успешно в любом случае. Функция возвращает итератор на вставленный элемент.
Элементы с одинаковыми ключами хранятся в словаре в порядке их занесения. При удалении элемента по ключу функцияerase возвращает количество удаленных элементов.
Функция equal_range возвращает диапазон итераторов, определяющий все вхождения элемента с заданным ключом.
Функция count может вернуть значение, большее 1.
70