快速访问std :: map的元素

时间:2010-07-22 09:34:12

标签: c++ stl

使用std::mapfind访问operator []元素时,您是否知道性能是否存在差异?

一个返回一个iterator,另一个返回const ref到该对象。

哪一个可能会更快,因为STL背后的所有背后?

2 个答案:

答案 0 :(得分:5)

在不存在的键上使用[]时,将插入默认元素。此默认元素取决于您的映射定义(例如,对于int,它将为零)。

当你使用find时,没有“自动”插入,所以如果你经常搜索不存在的密钥,它会更快。

答案 1 :(得分:-3)

find()是O(n)。 operator []是O(1)。因此后者(通常)更快。