使用迭代器遍历STL映射和 vector 之间的性能差异是什么?我想使用map键进行插入,删除和某些访问,但是我还需要对map中的每个元素进行常规访问。

最佳答案

对于map和vector,迭代整个集合的时间为O(N)。但是, vector (如列表vs vector )连续存储元素,因此访问下一个元素便宜得多,因为它将最佳地使用缓存,而映射则不会。

但是由于您需要基于键进行查找,因此实际上没有其他选择。您可以使用在第一个元素上排序的 vector 对,但是如果集合需要可变,这将非常慢。只需使用 map 即可。

关于c++ - STL映射与 vector 的迭代器访问性能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/730498/

10-11 22:03
查看更多