Сообщение Re[4]: const char* в качестве ключа для std::map от 04.08.2017 12:01
Изменено 04.08.2017 12:04 watchmaker
Re[4]: const char* в качестве ключа для std::map
Здравствуйте, Masterspline, Вы писали:
M>std::map::find() в качестве аргумента принимает Key& (а это std::string) и не факт, что оптимизатор сможет удалить создание временной строки.
В std::map есть несколько методов find. Как указанный вами с аргументом const Key&, так и шаблонный
который работает будет выбираться для const char*.
И при прозрачном компараторе он внутри себя не будет конструировать std::string, а напрямую будет сравнивать std::string с const char*
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*
Re[4]: const char* в качестве ключа для std::map
Здравствуйте, Masterspline, Вы писали:
M>std::map::find() в качестве аргумента принимает Key& (а это std::string) и не факт, что оптимизатор сможет удалить создание временной строки.
В std::map есть несколько методов find. Как указанный вами с аргументом const Key&, так и шаблонный
который будет выбираться для const char*.
И при прозрачном компараторе он внутри себя не будет конструировать std::string, а напрямую будет сравнивать std::string с const char*
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*