Предположим, я хотел сопоставить данные со строкой в качестве ключа. Какой контейнер выбрать, map
или unordered_map
? unordered_map
занимает больше памяти, поэтому предположим, что память не является проблемой, а проблема заключается в скорости.
unordered_map
обычно должен давать среднюю сложность O (1) с наихудшим случаем O (n). В каких случаях он достигнет O (n)? Когда время map
становится эффективнее, чем unordered_map
? Бывает, когда n мало?
Предполагая, что я бы использовал STL unordered_map
со стандартным haser Vs. карта. строка - это ключ.
Если я собираюсь перебирать элементы вместо того, чтобы каждый раз обращаться к отдельному элементу, что я должен предпочесть map
?