使用std::map
或find
访问operator []
元素时,您是否知道性能是否存在差异?
一个返回一个iterator
,另一个返回const ref
到该对象。
哪一个可能会更快,因为STL背后的所有背后?
答案 0 :(得分:5)
在不存在的键上使用[]时,将插入默认元素。此默认元素取决于您的映射定义(例如,对于int,它将为零)。
当你使用find时,没有“自动”插入,所以如果你经常搜索不存在的密钥,它会更快。
答案 1 :(得分:-3)
find()
是O(n)。 operator []
是O(1)。因此后者(通常)更快。