Контейнер map (функции at(), clear(), count(), erase(), empty())

Сегодня расскажу о некоторых встроенных функциях для контейнера Map и приведу примеры кода для работы с ними.
Итак, поехали!
При помощи функции map::at(), зная «ключ», всегда можно изменить «значение» map. Пример:
Код можно сразу же запустить, нажав на кнопку Run справа снизу. Также вы сразу получите ответ - проще уже некуда ;)
Результат выполнения программы:

В строках 7 по 9 происходит явная инициализация контейнера map. Т. к. каждому «ключу» соответствует единственное «значение», то в строках 12-14 при помощи функции map::at(), используя «ключ», мы изменяем установленное «значение». Вывод осуществляемый в строках 17-20, наглядно демонстрирует это. Multimap не поддерживает функцию map::at().
В 22 строке объявили контейнер multumap, который принимает два типа переменных char и int. В строках 25-27 производим заполнение контейнера multimap, а в строках 30-33 осуществляем вывод. В строке 35, 36 при помощи функции map::clear(), производится очистка контейнера multimap и map. В строках 39-41 и 44-46 производится заполнение контейнеров multimap и map новыми значениями. В строке 48, 49 создается итератор itMap указывающий на начало myMap и итератор itMultimap, указывающий на начало myMultimap. В строках 53-56 соответственно производится вывод map и multimap с новыми значениями.
Контейнеры multimap и map содержат функцию которая позволяет выполнять поиск заданного элемента по контейнеру, пример:
Данный код также можно запускать и тут же видеть результат исполнения программы:

Думаю, до строки 31, код должен быть понятен, если нет, то в двух словах происходит следующее: мы объявляем контейнер multimap и map, заполняем и выводим их. В 33 и 34 строке используется функция map::count(), которая осуществляет подсчет элементов в контейнерах multimap и map по заданному «ключу». Если такой ключ есть то будет выведено количество «ключей» в map и multimap иначе, будет выведено сообщение, что таких ключей нет В строках 33 и 34 применяется тернарный оператор, пока просто примите это как факт :)
Функция map::find() осуществляет поиск в контейнере заданного «ключа». Функция принимает один аргумент («ключ» который требуется найти в контейнере map или multimap). В 37 строке создается итератор itMap указывающий на «ключ» b в контейнере map. В 38 строке создается итератор itMultimap, указывающий на «ключ» а,но уже в контейнере multimap.
В строке 39 встречается функция map::erase(). Работа этой функции не чем не отличается от работы функции vector::erase(). Функция может принимать один или два аргумента. При принятии одного аргумента из контейнера map или multimap удаляется заданный аргумент, если аргументов двое, то первый аргумент указывает на место откуда начнется удаление, второй по куда будет произведено удаление аргументов. Поскольку итератор itMap указывает на b, а itMultimap указывает на а, то соответственно в 39 строке из контейнера map будет удалено b, а в строке 40 из multimap удалено а. В строке 41 мы говорим итератору itMap, чтобы он указывал на d в контейнере map, соответственно в 42 строке итератор itMultimap начинает указывать тоже на d, но в контейнере multimap. В строке 43 мы очищаем контейнер map начиная с d и до конца map. Тоже происходит в строке 44, но уже с контейнером multimap. В строках 47-49 производится вывод на экран содержимых контейнеров multimap и map после удаления из них элементов.
Функция map::clear() используемая в строке 52 полностью очищает контейнер map. Функцию map::clear() поддерживает и контейнер multumap. Я специально очистил только один контейнер map, что бы на примере функции map::empty() (описанной в 53 и 54 строке) показать, что контейнер действительно пуст. Думаю, работа кода в строках 53 и 54 должна быть понятна.
На сегодня всё!
Удачи в разработке ;)
Ваш developer