对于关联容器,++运算符可以将迭代器发送到集合的末尾吗?
例:
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;
Run Code Online (Sandbox Code Playgroud)
在这结束时,new_iter == new_map.end(),或者它最终是在伟大的未知?
注意:我知道这搞砸了而不是做事的方式.我正在研究一些WTF公司代码.
Tyl*_*nry 27
如果递增结束迭代器,则结果是未定义的行为.因此,它可以保持结束,或者结束,或者通过电子邮件发送给祖母一个指向goatse的链接.
另请参阅:如果我将迭代器指向向量的最后一个元素时将迭代器增加2,该怎么办?