C++ vector中删除符合条件的元素
程序员文章站
2022-07-12 14:06:41
...
1. vector中常用的插入和删除操作
insert(const_iterator pos, int count,ele);//迭代器指向位置pos插入count个元素ele.
push_back(ele); //尾部插入元素ele
pop_back();//删除最后一个元素
erase(const_iterator start, const_iterator end);//删除迭代器从start到end之间的元素
erase(const_iterator pos);//删除迭代器指向的元素
clear();//删除容器中所有元素
2. 想要删除vector中符合条件的元素,使用erase:
在c++中,erase重载了2个函数,分别是:删除迭代器指向的元素和删除迭代器区间中的所有元素。
- 注意:重载的这两
erase
函数的返回值都是指向下一个元素的迭代器
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<numeric>
using namespace std;
void PrintData(vector<int>& vec)
{
for(auto val:vec)
{
cout<<val<<" ";
}
cout<<endl;
return;
}
void DeleteElem()
{
int arr[] = {1,2,3,5,4,5,6,5,5,7,8,5};
int len = sizeof(arr)/sizeof(int);
vector<int> vec(arr,arr+len);
PrintData(vec);
cout<<"删除vec中所有值为5的元素."<<endl;
vector<int>::iterator it = vec.begin();
for(;it != vec.end();)
{
if(*it == 5)
//删除指定元素,返回指向删除元素的下一个元素的位置的迭代器
it = vec.erase(it);
else
//迭代器指向下一个元素位置
++it;
}
PrintData(vec);
}
int main()
{
DeleteElem();
system("pause");
return 0;
}
输出结果:
1 2 3 5 4 5 6 5 5 7 8 5
删除vec中所有值为5的元素.
1 2 3 4 6 7 8
请按任意键继续. . .
上一篇: Spring IOC
下一篇: 4.9MybatisUtils