【发布时间】:2010-11-22 10:13:57
【问题描述】:
对于关联容器,++ 运算符是否可以将迭代器发送到集合的末尾?
例子:
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:不,这只会回答一个实现正在做什么。