似乎我的程序性能受到以下功能的瓶颈:
inline bool isKeyInMap(const std::string key, std::unordered_map<std::string, MyClass>map)
{
auto t = map.find(key);
if (t == map.end()) return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法加快速度?
编辑:代码是一个更大的功能的一部分.传递价值不是故意的 - 我写了上面的一个删除任何与瓶颈无关的代码.我试图看看是否有更快的方法来执行以下操作:
auto t = map.find(key);
if (t == map.end()) return false;
return true;
Run Code Online (Sandbox Code Playgroud)
如果我和其他人一样好的C++程序员,我不会在这里发布.XD
通过引用传递参数,而不是通过值:
bool isKeyInMap(const std::string & key,
const std::unordered_map<std::string, MyClass> & m)
{
return m.find(key) != m.end();
}
Run Code Online (Sandbox Code Playgroud)
否则,每次进行查询时,最终都会复制所有内容.
| 归档时间: |
|
| 查看次数: |
568 次 |
| 最近记录: |