Sobes.tech
Back to questions
Junior — Middle
83

Можете объяснить преимущества и недостатки использования std::unordered_map в C++?

Companies where asked
ГК Адепт

Answer from AI

sobes.tech AI

std::unordered_map — это контейнер в C++, реализующий хеш-таблицу для хранения пар ключ-значение.

Преимущества:

  • Быстрый доступ к элементам по ключу в среднем за амортизированное время O(1).
  • Хорошо подходит, когда порядок элементов не важен, а важна скорость поиска.
  • Простота использования и стандартная интеграция с STL.

Недостатки:

  • Нет упорядоченности элементов, в отличие от std::map, где элементы отсортированы по ключу.
  • В худшем случае (при коллизиях) время доступа может деградировать до O(n).
  • Использует больше памяти из-за хранения хеш-таблицы и возможных коллизий.

Пример использования:

#include <iostream>
#include <unordered_map>

int main() {
    std::unordered_map<std::string, int> ages;
    ages["Иван"] = 25;
    ages["Мария"] = 30;

    std::cout << "Возраст Марии: " << ages["Мария"] << std::endl;
    return 0;
}