C++ 容器 vector研究:
一、C++ vector 删除符合条件的元素
std::vector::erase()
iterator erase (iterator position); //删除指定元素
iterator erase (iterator first, iterator last); //删除指定范围内的元素
返回值为指向删除元素(或范围)的下一个元素。
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int printf(vector<double> &value_Vec) //引用
{
for(int i=0;i<value_Vec.size();i++)
cout<<value_Vec[i]<<ends;
cout<<endl;
return 0;
}
int main()
{
#define N 8
vector<double> value_Vec;
vector<double>::iterator it;
int i;
for( i=0;i<N;i++)
value_Vec.push_back(i);
cout<<"first:\n";
printf(value_Vec);
for(it=value_Vec.begin();it!=value_Vec.end();)
{
if((int)(*it) % 5 ==0)
it=value_Vec.erase(it); //删除元素,返回值指向已删除元素的下一个位置
else
++it; //指向下一个位置
}
cout<<"result:\n";
printf(value_Vec);
return 0;
}