对于关联容器,++运算符可以发送迭代器超过集合的末尾吗?STL映射迭代器可以通过递增出界吗?
实施例:
map<UINT32, UINT32> new_map;
new_map[0] = 0;
new_map[1] = 1;
map<UINT32, UINT32> new_iter = new_map.begin();
++new_iter;
++new_iter;
++new_iter;
++new_iter;
++new_iter;
++new_iter;
++new_iter;
在这段最后,不new_iter == new_map.end(),或者它在大未知结束?
注:我知道这是搞砸了,而不是做事情的方式。我正在解决一些WTF公司代码。
那么你编译它,并检查它是否将在最后new_map.end()?如果您不确定,可能是最简单的方法来回答这个问题。 – Goz 2009-08-24 21:09:36
@Goz:不,这只会回答一个实施正在做什么。 – sbi 2009-08-24 21:11:59
可能的重复[如果增加迭代器等于STL容器的结束迭代器会发生什么情况](https://stackoverflow.com/questions/1057724/what-happens-if-you-increment-an-iterator这就是等于最终迭代器的一个) – Raedwald 2017-11-29 10:56:24