C++ vector删除符合条件的元素示例分享

时间:2021-05-20

C++ vector中实际删除元素使用的是容器vecrot std::vector::erase()方法。

C++ 中std::remove()并不删除元素,因为容器的size()没有变化,只是元素的替换。

1.std::vector::erase()

函数原型:iterator erase (iterator position);//删除指定元素

iterator erase (iterator first, iterator last);//删除指定范围内的元素

返回值:指向删除元素(或范围)的下一个元素。(An iterator pointing to the new location of the element that followed the last element erased by the function call. This is the container end if the operation erased the last element in the sequence.)

2.代码实例

复制代码 代码如下:
#include<iostream>
#include<string>
#include<vector>
using namespace std;

int out(vector<int> &iVec)
{
for(int i=0;i<iVec.size();i++)
cout<<iVec[i]<<ends;
cout<<endl;
return 0;
}

int main()
{
vector<int> iVec;
vector<int>::iterator it;
int i;
for( i=0;i<10;i++)
iVec.push_back(i);

cout<<"The Num(old):";out(iVec);
for(it=iVec.begin();it!=iVec.end();)
{
if(*it % 3 ==0)
it=iVec.erase(it); //删除元素,返回值指向已删除元素的下一个位置
else
++it; //指向下一个位置
}
cout<<"The Num(new):";out(iVec);
return 0;
}


声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章