C++容器的迭代器
问题描述:
这个问题听起来可能蹩脚,但我还没有找到明确的答案。我可以假设,迭代器返回map
的find()
方法是否会指向相同的数据,即使我将其他元素添加(或删除)到相同的map
?目前还不清楚对我来说,如果在map
或在特定的数据位置map
的迭代器指向...C++容器的迭代器
答
您可以继续使用后insert
或erase
操作相同的迭代器。该标准说(C++ 03标准,第23.1.2条第8款):
插入元件不得影响迭代器和引用到容器的有效性,并擦除 成员应仅无效迭代器并提及被擦除的元素。
这是所有关联容器(map
,set
,multimap
,multiset
)真。
+1为权威参考(这是另一个:http://www.sgi.com/tech/stl/Map.html)。 – 2011-01-22 10:19:05