64,647
社区成员
发帖
与我相关
我的任务
分享
了解earse的返回值是目前楼主需要知道的,参考下列代码
#include <iostream>
#include <vector>
#include <list>
using namespace std;
int main()
{
int ia[ ] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 55, 89, 90, 100 };
size_t n = sizeof(ia) / sizeof(*ia);
vector <int> ivec(ia, ia + n);
list <int> ilist(ia, ia + n);
for (vector <int>::iterator viter=ivec.begin(); viter!=ivec.end(); )
{
if (*viter % 2 ==0)
{
viter = ivec.erase(viter);
}
else
++viter;
}
for (list <int>::iterator liter=ilist.begin(); liter!=ilist.end(); )
{
if (*liter % 2 != 0)
{
liter = ilist.erase(liter);
}
else
++liter;
}
return 0;
}