РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
279 of 815 menu

Класс multimap

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

Синтаксис

#include <map> std::multimap<KeyType, ValueType> name; std::multimap<KeyType, ValueType> name = {{key1, value1}, {key2, value2}};

Пример

Давайте создадим контейнер multimap и добавим в него несколько элементов с одинаковыми ключами:

#include <iostream> #include <map> #include <string> using namespace std; int main() { multimap<int, string> mm; mm.insert({1, "abcde"}); mm.insert({2, "12345"}); mm.insert({1, "hello"}); for (auto it = mm.begin(); it != mm.end(); ++it) { cout << it->first << " : " << it->second << endl; } return 0; }

Результат выполнения кода:

"1 : abcde" "1 : hello" "2 : 12345"

Пример

Давайте подсчитаем количество элементов с определенным ключом с помощью метода count:

#include <iostream> #include <map> #include <string> using namespace std; int main() { multimap<int, string> mm; mm.insert({1, "abcde"}); mm.insert({1, "12345"}); mm.insert({2, "hello"}); cout << mm.count(1) << endl; cout << mm.count(2) << endl; return 0; }

Результат выполнения кода:

2 1

Пример

Давайте найдем все элементы с заданным ключом, используя метод equal_range:

#include <iostream> #include <map> #include <string> using namespace std; int main() { multimap<int, string> mm; mm.insert({1, "abcde"}); mm.insert({1, "12345"}); mm.insert({2, "hello"}); auto range = mm.equal_range(1); for (auto it = range.first; it != range.second; ++it) { cout << it->second << endl; } return 0; }

Результат выполнения кода:

"abcde" 12345

Смотрите также

  • класс map,
    который хранит уникальные ключи
  • метод insert,
    который добавляет элементы в контейнер
  • метод count,
    который подсчитывает количество элементов с ключом
  • метод equal_range,
    который возвращает диапазон элементов с заданным ключом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить