是否允许增加it已经存在的迭代器变量end(),即auto it = v.end()?
vector?++it可能幂等如果it==v.end()?我问,因为我偶然发现了这样的代码:
std::vector<int> v{ 1, 2, 3, 4, 5, 6, 7 };
// delete every other element
for(auto it=v.begin(); it<v.end(); ++it) { // it<end ok? ++it ok on end?
it = v.erase(it);
}
Run Code Online (Sandbox Code Playgroud)
它适用于g ++ - 6,但这不是证据.
对于一个人it<v.end()可能只能使用vectors,我想它应该it!=v.end()一般阅读.但是在这个示例中,当它已经结束时,将无法识别vif ++it的结尾.