【发布时间】:2014-04-24 01:42:46
【问题描述】:
我有一个简单的问题:如果我在迭代器到达 C++ STL 容器的 end()(最后一个)时继续递增迭代器会发生什么?例如
set<int> intSet;
intSet.insert(0);
intSet.insert(1);
intSet.insert(2);
set<int>::iterator setIter = intSet.begin();
for (int i = 0; i < 10; i++)
setIter++;
那么,setIter 会一直是 intSet.end() 吗?或者这是一个未定义的行为(可以给我不一致的垃圾)?
【问题讨论】:
-
@Tahlil 可能,他害怕破坏宇宙,因为我们不知道会发生什么。
-
@Tahlil 仅仅因为它可能有效并不意味着它一定有效。
-
@Joe 我的问题的目的是让他告诉我们他在提出问题之前做了哪些研究。没有别的了:)
标签: c++ iterator set increment