Можешь назвать и описать основные виды ассоциативных контейнеров в стандартных библиотеках?
Answer from AI
sobes.tech AI
В стандартной библиотеке C++ (STL) основные ассоциативные контейнеры — это структуры данных, которые хранят пары ключ-значение и обеспечивают быстрый доступ по ключу. Основные виды:
-
std::map — отсортированный ассоциативный контейнер, реализованный обычно на основе красно-чёрного дерева. Ключи уникальны, элементы хранятся в отсортированном порядке по ключу. Вставка, поиск и удаление — за O(log n).
-
std::multimap — похож на map, но допускает несколько элементов с одинаковым ключом.
-
std::unordered_map — ассоциативный контейнер на основе хеш-таблицы. Ключи уникальны, операции вставки, поиска и удаления в среднем за O(1), но порядок элементов не определён.
-
std::unordered_multimap — как unordered_map, но допускает несколько элементов с одинаковым ключом.
Пример использования std::map:
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> ages;
ages["Иван"] = 25;
ages["Мария"] = 30;
for (const auto& [name, age] : ages) {
std::cout << name << ": " << age << " лет\n";
}
return 0;
}