例题为:假设有如下ia的定义,ia复制到vector和list中,把list容器中奇数值元素删除掉,把vector容器偶数值元素删除掉。
数组复制采用push_back操作。删除操作采用了erase函数,由于该函数返回值为指向被删除元素后面的元素,则使用了返回值赋值回给迭代器的方法,对迭代器进行前移,保证循环的继续进行。相当于迭代器回到了erase操作之前的状态,只是迭代器自增后指向的值为删除元素后的元素。
/*
* delete.cpp
*
* Created on: 2015年4月10日
* Author: CXH
*/
#include <iostream>
#include <vector> //vector容器类型头文件
#include <list> //list容器类型头文件
using namespace std;
int main()
{
int ia[]={0,1,1,2,3,5,8,13,21,55,89};
int iasize=sizeof(ia)/sizeof(int);
cout<<iasize<<'\n';
vector<int> ivec;
list<int> ilist;
for (int i=0; i<iasize; i++) {
ivec.push_back(ia[i]);
}
for (int i=0; i<iasize; i++) {
ilist.push_back(ia[i]);
}
//剔除奇数后的内容
for (list<int>::iterator listit=ilist.begin(); listit!=ilist.end(); listit++) {
if (*