Что такое multimap в C++?
std::multimap в языке программирования C++ представляет собой ассоциативный контейнер, аналогичный std::map, но разрешающий наличие нескольких элементов с одинаковым ключом. Этот контейнер входит в Standard Template Library (STL) и предоставляет эффективный способ работы с ассоциативными данными, где ключ может быть связан с несколькими значениями.
#include <iostream>
#include <multimap>
int main() {
// Создание ассоциативного массива (multimap) строк
std::multimap<int, std::string> students;
// Добавление элементов в multimap
students.insert({101, "Alice"});
students.insert({102, "Bob"});
students.insert({103, "Alice"}); // Допустимо иметь несколько студентов с одним ID
// Поиск всех студентов с ID 101
int studentID = 101;
auto range = students.equal_range(studentID);
std::cout << "Students with ID " << studentID << ": ";
for (auto it = range.first; it != range.second; ++it) {
std::cout << it->second << " ";
}
std::cout << std::endl;
// Итерация по элементам multimap
std::cout << "All students: ";
for (const auto& student : students) {
std::cout << "(" << student.first << ": " << student.second << ") ";
}
std::cout << std::endl;
return 0;
}
Основные операции с std::multimap:
- Добавление элементов: Элементы добавляются в
std::multimapс использованием методаstd::multimap::insert(). - Поиск элементов: Поиск элементов выполняется с использованием метода
std::multimap::equal_range(). - Удаление элементов: Метод
std::multimap::erase()используется для удаления элементов по ключу. - Итерация по multimap: Итерация может быть выполнена с использованием цикла
forили итераторов.
Комментарии