C++0x erase in loop

编写于

现在正在使用C++开发一个S/C的程序,用到有趣的C++,竟然还是成为笑话。

一个删除std::vecotr里面元素的编写,就让我头大了两个小时,郁闷郁闷。


#include
#include
int main() {
std::vector x = { 0, 1, 2, 3, 4, 5, 6 };
auto i = x.begin();
while( i!=x.end() ) {
if( *i / 2 ) x.erase(i++);
else i++;
}
for(auto y:x) {
std::cout << y << “ “;
}
}