我想删除值大于 2 且小于 5 的所有元素,代码如下:
vector<int> myvector{3, 3, 3, 3, 3, 3, 3, 1, 2, 3, 4, 5 , 2, 3, 4, 9};
vector<int>::iterator it;
it = myvector.begin();
for(int i = 0; i < myvector.size(); i++)
{
if(myvector[i] > 2 && myvector[i] < 5)
{
myvector.erase(it+i);
}
}
for(int i = 0; i < myvector.size(); i++)
{
cout << ' ' << myvector[i];
}
输出:3 3 3 1 2 4 5 2 4 9
问题出在哪里。