【发布时间】:2014-03-06 18:01:52
【问题描述】:
对于 STL 中的向量 v,存储 v.end()(例如 vector::iterator)以供以后使用是否安全?是否可以保证以后使用存储的迭代器时,它仍然会指向同一个位置?
考虑以下向量v:1, 2, 3, 4, 5
我现在将 std::vector<int>::iterator it = v.end() 存储起来。稍后,我将 2 个新元素推入向量中,之后它看起来像:1, 2, 3, 4, 5, 6, 7。
我现在可以放心*it == 6了吗?
【问题讨论】:
-
我在回答中犯了一个小错误,但我更正了。查看编辑后的答案。