我的程序运行时的很大一部分专用于std :: __ detail :: _ Map_base,我不知道它指的是什么。
我在互联网上搜索了一下,它似乎是某种形式的结构,但我不知道它是如何占用时间的,更不用说几乎五分之一了。我该怎么做才能减少这段时间?
答案 0 :(得分:2)
我在这里闻到了EECS 281项目
当我作为本课程的IA时参考,我对此有很多疑问。这只意味着你花了很多时间在地图类型的内部方法中。尝试减少昂贵的副本并重复查找操作。如果您一遍又一遍地访问地图,如下面的代码
if (m[key].something) {
use(m[key]);
cout << m[key];
}
尝试将其更改为
auto& value = m[key];
if (value.something) {
use(value);
cout << value;
}
这将帮助您从3个昂贵的查找操作转到1个。您可以想象当您在循环中多次访问地图时,这将如何有用。
另请查看Can the use of C++11's 'auto' improve performance?并确保您没有犯错误。