Sobes.tech
Back to questions
Junior — Middle
86

Можешь назвать и описать основные виды ассоциативных контейнеров в стандартных библиотеках?

Companies where asked
Renga Software

Answer from AI

sobes.tech AI

В стандартной библиотеке C++ (STL) основные ассоциативные контейнеры — это структуры данных, которые хранят пары ключ-значение и обеспечивают быстрый доступ по ключу. Основные виды:

  1. std::map — отсортированный ассоциативный контейнер, реализованный обычно на основе красно-чёрного дерева. Ключи уникальны, элементы хранятся в отсортированном порядке по ключу. Вставка, поиск и удаление — за O(log n).

  2. std::multimap — похож на map, но допускает несколько элементов с одинаковым ключом.

  3. std::unordered_map — ассоциативный контейнер на основе хеш-таблицы. Ключи уникальны, операции вставки, поиска и удаления в среднем за O(1), но порядок элементов не определён.

  4. 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;
}