欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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