【发布时间】:2010-12-08 19:54:57
【问题描述】:
我遇到了一个我想使用关联容器的情况,我选择使用 std::unordered_map,因为这个容器可以用来容纳数百万或更多的元素是完全可行的。但现在我还需要按顺序迭代。我考虑过让值类型在列表中相互链接,但现在我将遇到内存管理问题。
我应该改变容器,比如 std::map 吗?或者只是遍历我的 unordered_map 一次,插入向量,排序,然后迭代?我不太可能需要以有序的方式反复迭代。
【问题讨论】:
-
“我不太可能需要以有序的方式反复迭代。” - 出于兴趣,当您选择
unordered_map时,您是否认为您根本不需要按顺序进行迭代?我想说map是最简单的可用选项,因此是您应该衡量优化的基准(例如unordered_map加上单独的排序或排序)。 -
@Steve:我知道我必须这样做,但忘记了,因为第一阶段没有必要。
-
当然,如果我不厌其烦地为我的密钥编写
hash函数,我也会热衷于坚持使用unordered_map:-) -
@Steve:我并没有真正这样做。只是将一些哈希转发到标准哈希。
标签: c++