Що таке 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або ітераторів.
Коментарі