删除掉vector容器中的偶数值,List容器中的奇数值。程序编译通过,运行报错,提示vector iterator not incrementable
求分析原因
#include "stdafx.h"
#include <iostream>
#include <string>
#include <list>
#include <vector>
using namespace std;
int main()
{
int ia[]={0,1,1,2,3,5,8,13,21,55,89};
size_t word_size=sizeof(ia)/sizeof(int);
vector<int> ivec(ia,ia+word_size);
list<int> ilist(ia,ia+word_size);
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();iter++)
{
if(*iter%2==0)
ivec.erase(iter);
}
for(list<int>::iterator iter2=ilist.begin();iter2!=ilist.end();iter2++)
{
if(*iter2%2!=0)
ilist.erase(iter2);
}
return 0;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
iter=xxx.erase(iter)
else
iter++
对于vector,rbegin倒删可以减少移动内存的开销.