В C++ контейнер
unordered_map хранит значения по ключам. Но выражение mp[key] не просто ищет ключ: если его нет, контейнер создаёт новую запись со значением 0. Поэтому условие if (mp[complement]) в задаче Two Sum формально работало с индексами от единицы, однако каждый неудачный поиск раздувал таблицу лишними записями.Автор разбора на DEV Community заменил квадратные скобки на
find(): в его замере время сократилось с 3 до 0 мс. Этот метод возвращает признак отсутствия ключа и не добавляет запись. В C++20 для простой проверки наличия есть contains().Попробуйте повторить пример и вывести размер таблицы после нескольких промахов. Если вопрос к контейнеру меняет его размер, для проверки ключа нужны
find() или contains().
