我想用指针作为键来映射数据。我应该选择哪种容器,map还是unordered_map?在stackoverflow上有多个关于这个主题的问题,但没有一个覆盖当我们需要遍历所有键值对时的性能方面。
std::map<classKey* , classData*> myMap;
std::unordered_map<classKey* , classData*> myUnorderedMap;
for (auto & iter : myMap) { //loop1
display(iter.second);
}
for (auto & iter : myUnorderedMap) { //loop2
display(iter.second);
}
loop1和loop2哪个性能更好。
@RetiredNinja提供的基准测试结果。
当size = 10,000,000时,我们得到以下基准测试结果:
std::map
上。你能否设置一些测试用例来进行分析吗? - Bathsheba