std::map (Красно-черное дерево)operator[] или метода at(): O(log N).std::unordered_map (Хеш-таблица)operator[] или метода at(): O(1) в среднем случае. O(N) в худшем случае.Сравнение:
| Операция | std::map (O) | std::unordered_map (O) |
|---|---|---|
| Вставка, Удаление | log N | 1 (средний), N (худший) |
| Поиск | log N | 1 (средний), N (худший) |
| Доступ по ключу | log N | 1 (средний), N (худший) |
| Итерация всех | N | N (средний) |
std::unordered_map обычно быстрее для одиночных операций (вставка, поиск, удаление) благодаря O(1) в среднем, но требует хорошей хеш-функции и чувствительна к коллизиям. std::map гарантирует логарифмическую сложность независимо от данных, сохраняет элементы в отсортированном порядке и не требует хеш-функции для типа ключа.