Re[4]: const char* в качестве ключа для std::map
От: watchmaker  
Дата: 04.08.17 12:01
Оценка: +4
Здравствуйте, Masterspline, Вы писали:

M>std::map::find() в качестве аргумента принимает Key& (а это std::string) и не факт, что оптимизатор сможет удалить создание временной строки.

В std::map есть несколько методов find. Как указанный вами с аргументом const Key&, так и шаблонный
template< class K > iterator find( const K& x );

который будет выбираться для const char*.

И при прозрачном компараторе он внутри себя не будет конструировать std::string, а напрямую будет сравнивать std::string с const char*
Отредактировано 04.08.2017 12:04 watchmaker . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.