6.12.5. Удаление элементов map

6.12.5. Удаление элементов map

Существуют три формы функции-члена erase() для удаления элементов отображения. Для единственного элемента используется erase() с ключом или итератором в качестве аргумента, а для последовательности эта функция вызывается с двумя итераторами. Например, мы могли бы позволить удалять элементы из text_map таким образом:

string removal_word;

cout "введите удаляемое слово: ";

cin removal_word;

if ( text_map-erase( remova1_word ))

cout "ok: " remova1_word " удалено ";

else cout "увы: " remova1_word " не найдено! ";

Альтернативой является проверка: действительно ли слово содержится в text_map?

mapstring,loc*::iterator where;

where = text_map.find( remova1_word );

if ( where == text_map-end() )

cout "увы: " remova1_word " не найдено! ";

else {

text_map-erase( where );

cout "ok: " remova1_word " удалено! ";

}

В нашей реализации text_map с каждым словом сопоставляется множество позиций, что несколько усложняет их хранение и извлечение. Вместо этого можно было бы иметь по одной позиции на слово. Но контейнер map не допускает дублирующиеся ключи. Нам следовало бы воспользоваться классом multimap, который рассматривается в разделе 6.15.

Упражнение 6.20

Определите отображение, где ключом является фамилия, а значением – вектор с именами детей. Поместите туда как минимум шесть элементов. Реализуйте возможность делать запрос по фамилии, добавлять имена и распечатывать содержимое.

Упражнение 6.21

Измените программу из предыдущего упражнения так, чтобы вместе с именем ребенка записывалась дата его рождения: пусть вектор-значение хранит пары строк – имя и дата.

Упражнение 6.22

Приведите хотя бы три примера, в которых нужно использовать отображение. Напишите определение объекта map для каждого примера и укажите наиболее вероятный способ вставки и извлечения элементов.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Удаление элементов Проводника

Из книги Тонкости реестра Windows Vista. Трюки и эффекты автора Клименко Роман Александрович

Удаление элементов Проводника Существует возможность запрета отображения некоторых элементов Проводника. В данном разделе книги мы подробнее познакомимся с этой возможностью.Удаление меню ФайлС помощью несложной операции можно удалить меню Файл из главного меню как


Динамическое добавление (и удаление) элементов управления

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Динамическое добавление (и удаление) элементов управления Но что делать, если нужно изменить содержимое Panel в среде выполнения? Соответствующий процесс должен показаться вам очень знакомым, если вы внимательно прочитали материал книги, посвященный работе с Windows Forms.


Добавление и удаление элементов таблицы

Из книги Word 2007.Популярный самоучитель автора Краинский И

Добавление и удаление элементов таблицы При редактировании таблицы иногда бывает необходимо добавлять в нее дополнительные элементы – строки или столбцы. Для этого выделите такое количество строк или столбцов, какое нужно добавить. Затем перейдите на вкладку Работа с


8.1.14. Удаление из массива элементов равных nil

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

8.1.14. Удаление из массива элементов равных nil Метод compact (и его вариант compact! для модификации на месте) удаляет из массива элементы равные nil, оставляя все остальные без изменения:a = [1, 2, nil, 3, nil, 4, 5]b = a.compact # [1, 2, 3, 4, 5]a.compact!    # а равно [1, 2, 3, 4,


8.1.15. Удаление заданных элементов из массива

Из книги Справочник по PHP автора

8.1.15. Удаление заданных элементов из массива В Ruby легко удалить элементы из массива - для этого даже существует много способов. Чтобы удалить элемент с известным индексом, достаточно вызвать метод delete_at:a = [10, 12, 14, 16, 18]a.delete_at(3) # Возвращает 16.# а равно [10, 12, 14, 18]a.delete_at(9) #


Добавление и удаление элементов Web-страницы

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

Добавление и удаление элементов Web-страницы А теперь — высший пилотаж Web-программирования! Программное добавление на Web-страницу новых элементов и программное же их удаление. Для этого применяют методы объекта DomHelper.Метод append добавляет новый элемент Web-страницы в


Добавление и удаление элементов Web-страницы

Из книги Технология XSLT автора Валиков Алексей Николаевич

Добавление и удаление элементов Web-страницы А теперь — высший пилотаж Web-программирования! Программное добавление на Web-страницу новых элементов и программное же их удаление. Для этого применяют методы объекта DomHelper.Метод append добавляет новый элемент Web-страницы в


Узлы элементов

Из книги VBA для чайников автора Каммингс Стив

Узлы элементов Каждому элементу XML-документа соответствует узел элемента. Дочерними узлами узла элемента могут быть узлы его дочерних элементов, а также узлы комментариев, инструкций по обработке и текстовые узлы, которые представляют его непосредственное содержимое.


Добавление новых элементов в панель элементов управления

Из книги Фундаментальные алгоритмы и структуры данных в Delphi автора Бакнелл Джулиан М.

Добавление новых элементов в панель элементов управления Чтобы получить возможность использовать элемент управления ActiveX, выполните следующее.1. Установите программное обеспечение элемента управления на жесткий диск.Мне кажется, это имеет смысл.2. Зарегистрируйте


Вставка и удаление элементов в односвязном списке

Из книги Linux программирование в примерах автора Роббинс Арнольд

Вставка и удаление элементов в односвязном списке А каким образом можно вставить новый элемент в связный список? Или удалить? Оказывается, что для выполнения этих операций требуется выполнить небольшую работу с указателями.Для односвязного списка существует только


Вставка и удаление элементов в двухсвязном списке

Из книги iOS. Приемы программирования автора Нахавандипур Вандад

Вставка и удаление элементов в двухсвязном списке Каким образом вставлять новый узел в двухсвязный список? В односвязном списке для этого нужно было разорвать одну ссылку и вставить две новых, а для двухсвязного списка потребуется разорвать две ссылки и вставить четыре


Удаление элементов из хеш-таблицы с линейным зондированием

Из книги C++ для начинающих автора Липпман Стенли

Удаление элементов из хеш-таблицы с линейным зондированием Прежде чем приступить к рассмотрению конкретного кода, рассмотрим удаление элементов из хеш-таблицы. Эта задача кажется достаточно простой: необходимо выполнить хеширование ключа элемента, который нужно


14.4.6. Удаление вершины дерева и удаление дерева: tdelete() и tdestroy()

Из книги автора

14.4.6. Удаление вершины дерева и удаление дерева: tdelete() и tdestroy() Наконец, вы можете удалить элементы из дерева и, на системах GLIBC, удалить само дерево целиком:void *tdelete(const void *key, void **rootp,int (*compare)(const void*, const void*));/* Расширение GLIBC, в POSIX нет: */void tdestroy(void *root, void (*free_node)(void *nodep));Аргументы


Хранение элементов в коллекциях и получение элементов из коллекций

Из книги автора

Хранение элементов в коллекциях и получение элементов из коллекций Коллекции — это такие объекты, в экземплярах которых могут храниться другие объекты. Одна из самых распространенных разновидностей коллекций — это массив, который инстанцирует NSArray или NSMutableArray. В


6.12.5. Удаление элементов map

Из книги автора

6.12.5. Удаление элементов map Существуют три формы функции-члена erase() для удаления элементов отображения. Для единственного элемента используется erase() с ключом или итератором в качестве аргумента, а для последовательности эта функция вызывается с двумя итераторами.