考虑到在主内存中搜索时缓存和数据局部性的积极影响,我倾向于使用std::vector<>
和std::pair<>
类似的键值项目,并对两者执行线性搜索,如果我知道键值项目的总数将会永远不要“太大”来严重影响性能。何时选择关键值数据的std :: map over std :: map?
最近我一直在很多情况下我事先知道,我将有键值项的数额巨大,因此都选择了std::map<>
从此开始。
我想知道如何在上述情况下为适当的容器做出决定。
你
- 始终使用
std::vector<>
(或类似)? - 始终使用
std::map<>
(或类似)? - 对于产品数量范围内的哪一个比另一个更可取?
- 东西完全不同吗?
谢谢!
@Nemanja:因为我通常在一个严重瘫痪的Windows CE/Mobile环境中工作,在这个环境中,TR1太费时,至少说要集成。 – 2010-04-27 15:40:14