64,687
社区成员
发帖
与我相关
我的任务
分享
//9-26.cpp
//给定定义:int ia[]={0,1,2,3,5,8,13,21,55,89};
//将ia复制到一个vector容器和一个list容器中,
//使用单个迭代器参数版本的erase函数将list容器中的奇数值元素删除掉
//然后将vector容器中的偶数元素删除掉
#include<iostream>
#include<vector>
#include<list>
using namespace std;
int main()
{
int ia[]={0,1,2,3,5,8,12,21,55,89};
vector<int> ivec(ia,ia+11); //将ia复制到vector容器
list<int> ilst(ia,ia+11); //将ia复制到list容器
//删除vector容器中的偶数值元素
for(vector<int>::iterator vit=ivec.begin();
vit!=ivec.end();++vit)
{
if(*vit%2==0) //迭代器所指向的元素为偶数
{
vit=ivec.erase(vit); //删除元素
--vit; //迭代器同退,指向被删除元素的前一元素
}
}
//删除list容器中的奇数值元素
for(list<int>::iterator lit=ilst.begin();
lit!=ilst.end();++lit)
{
if(*lit%2!=0) //迭代器所指向的元素为奇数
{
lit=ilst.erase(lit); //删除元素
--lit; //迭代器同退,指向被删除元素的前一元素
}
}
for(list<int>::iterator it=ilst.begin();it!=ilst.end();++it)
cout<<*it<<endl;
cout<<endl;
for(vector<int>::iterator ti=ivec.begin();ti!=ivec.end();++ti)
cout<<*ti<<endl;
return 0;
}
vector<int> ivec(ia,ia+10); //11改为10
list<int> ilst(ia,ia+10); //11改为10