std::unordered_map
ваш приятель.
В отличие от std::map
, он предлагает амортизированный O(1)
сложность поиска и времени вставки. Базовая структура данных std::unordered_map
- это хеш-таблица - корзина с отдельной цепочкой из двусвязного списка, содержащая записи в обычном случае. С другой стороны, std::map
- это сбалансированное бинарное дерево поиска под капотом, которое предлагает логарифмический поиск.
Для соревновательного программирования, в сегодняшних онлайн-жюри, подойдет std::unordered_map
из пяти миллионов заявок. Все, что находится за этим, может вызвать проблемы.