这是我的代码
std::vector<int> myvector;
int i=1;
for ( i=1; i<=50; i++) myvector.push_back(i);
for ( i=0; i<50; i++)
{
if(myvector[i]%2==0)
{
myvector.erase(myvector.begin()+i);
i--;
}
}
这里我试图删除所有偶数,并在删除偶数后我正在调整计数器变量。但我没有得到理想的结果。为什么?
答案 0 :(得分:0)
迈克尔提出的第二个建议比手动更有意义:
std::vector<int> myvector;
myvector.erase(std::remove_if(myvector.begin(),
myvector.end(),
[](int x){return x % 2 == 0;}),
myvector.end());