- 主题:参数是 string_view, map key 是 string,查找效率
std::map<std::string, int32_T> m;
bool findData(std::string_view key)
{
auto it = m.find(key); // 直接传递 key 来查找吗?感觉不对
auto it = m.find(std::string(key)); // 这样感觉效率还不如参数直接传递 const std::string & key ?
}
--
FROM 218.76.62.*
如果传入的参数key只有string_view形式,那么从string_view到string的转换这个步骤是少不了的。
如果传入的参数key有string_view、string两种形式,那么不如传递const string &过来。
map的每个key也可以是string_view,但要码农手动保证每个string_view的生命周期不小于map的生命周期。一般这么搞比较危险。
--
修改:z16166 FROM 61.48.130.*
FROM 61.48.130.*
c++14的map/set就支持用string_view异构查找吧,unordered map要到c++20才支持。
【 在 speedboy2998 的大作中提到: 】
: std::map<std::string, int32_T> m;
: bool findData(std::string_view key)
: {
: ...................
--
FROM 222.129.51.*