【发布时间】:2011-08-09 07:36:53
【问题描述】:
我有一个非常大的项目列表(约 200 万),我想优化访问速度。我使用迭代器 (++it) 遍历项目。
现在代码是使用std:map<std::wstring, STRUCT>实现的。
我想知道是否值得用std::deque<std::pair<std::wstring, STRUCT>> 更改std::map。我认为我将具有使用指针算法的优势并最大限度地减少缓存未命中。值得吗?
我知道分析是答案,但在实施之前我需要一个意见......
【问题讨论】:
-
您如何访问这些项目?如果您只是在遍历它们,那么地图似乎是错误的结构,所以大概您正在做一些查找?您能否为问题添加更多细节?
-
我在 STRUCT 中搜索一些值。我迭代了很多,我使用迭代器(++it),但我可能会切换到 std::for_each 虽然我不认为这是一个很大的优势
-
Jeff 的意思是:你当初为什么选择地图?除了迭代之外,您还做什么其他?
标签: c++ optimization stl