Производительность передачи итератора std::unordered_map в функцииC++

Программы на C++. Форум разработчиков
Anonymous
Производительность передачи итератора std::unordered_map в функции

Сообщение Anonymous »

У меня есть приложение, работающее с std::unordered_map на C++. У меня есть 2 варианта:
  • Выполнить hash_map.find(key) один раз и после этого использовать один и тот же итератор в нескольких вызовах функций.< /p>
  • Или я могу выполнить hash_map.find(key) всякий раз, когда мне нужно, что будет означать, что я могу вызвать hash_map .find(key) несколько раз больше по сравнению с приблизиться к 1.
Причина, по которой я скептически отношусь к подходу 1, заключается в том, что итераторы могут стать недействительными. Каков наилучший подход в таких случаях?
У меня есть приложение, чувствительное к задержке, поэтому я хочу знать, насколько второй подход будет хуже по сравнению с подходом 1, если вообще будет. Или могу ли я ожидать, что аппаратная предварительная выборка и кэширование позаботятся о задержке?
Пожалуйста, сообщите.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -functions

Вернуться в «C++»