#include "stdafx.h"
#include <iostream>
#include <vector>
#include <list>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int ia[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 55, 89 };
vector<int> ivec(ia, ia + 11);
list<int> ilist(ia, ia + 11);
for(list<int>::iterator lit = ilist.begin(); lit != ilist.end(); ++lit){
if(*lit % 2 != 0){
lit = ilist.erase(lit);
--lit;
}
}
for(vector<int>::iterator vit = ivec.begin(); vit != ivec.end(); ++vit){
if(*vit % 2 == 0){
vit = ivec.erase(vit);
--vit;
}
}
return 0;
}
我用的是vs2012。运行时出现这个问题,不知道怎么解决,求帮忙!
#include <iostream>
#include <vector>
#include <list>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int ia[] = { 0, 1, 1, 2, 3, 5, 8, 13, 21, 55, 89 };
vector<int> ivec(ia, ia + 11);
list<int> ilist(ia, ia + 11);
for(list<int>::iterator lit = ilist.begin(); lit != ilist.end(); ++lit){
if(*lit % 2 != 0){
lit = ilist.erase(lit);
--lit;
}
}
for(vector<int>::iterator vit = ivec.begin(); vit != ivec.end(); ++vit){
if(*vit % 2 == 0){
vit = ivec.erase(vit);
--vit;
}
}
return 0;
}
我用的是vs2012。运行时出现这个问题,不知道怎么解决,求帮忙!