问题
将数组拷贝到一个vector和一个list中。使用单迭代器版本的erase从list中删除奇数元素,从vector中删除偶数元素.
注意:[删除元素的成员函数并不检查[要删除的元素]是否存在,因此删除之前必须保证其存在.]erase删除deque中除首尾位置之外的任何元素都会使所有迭代器,引用,指针失效。指向vector或string中删除点之后位置的迭代器、引用和指针都会失效。
源码
/*************************************************************************
> File Name: test.9.26.cpp
> Author: puruidong
> Mail: 1@w1520.com
> Created Time: 2014年05月15日
************************************************************************/
#include
#include
#include #include
using namespace std;
//使用下面的数组,将数组拷贝到一个vector和一个list中.使用单迭代器版本的erase从list中删除奇数元素,从vector中删除偶数元素.
int main()
{
int ia[] = {0,1,1,2,3,5,8,13,21,55,89};
size_t sizea = sizeof(ia)/sizeof(*ia);
vector
list
for(vector
{//从vector中删除偶数.
if(*it%2==0)
{
it=vec.erase(it);
}else
{
++it;
}
}
for(list
{//从list中删除奇数元素.
if(*its%2!=0)
{
its= lis.erase(its);
}else
{
++its;
}
}
for(vector
{//只输出不更改.
cout << "输出vector中的数据:" << *itvec << endl;
}
return 0;
}
更多信息可参考:erase的使用