C++(20):vector通过erase,erase_if删除符合条件的元素

这篇具有很好参考价值的文章主要介绍了C++(20):vector通过erase,erase_if删除符合条件的元素。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C++20前,vector可以通过成员函数erase删除迭代器指定的元素,并返回被删除的下一个元素:

iterator erase( iterator pos );
iterator erase( iterator first, iterator last );

 1.通过迭代器删除指定位置元素

需要说明的是,删除元素后,迭代器会失效,可以通过erase返回下一个有效的迭代器文章来源地址https://www.toymoban.com/news/detail-794720.html

#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

void pData(auto& data)
{
    for(auto& i : data)
    {
        cout<<i<<" ";
    }
    cout<<endl;
    cout<<"size:"<<data.size()<<" capacity:"<<data.capacity()<<endl;
}

int main()
{
    vector<int> data{ 1, 2, 3, 4, 5, 6, 7, 8};
    pData(data);
    for(auto it=data.begin(); it!=data.end();)
    {
        if(*it % 2 == 0)
        {
            it = data.erase(it);
        }
        else
        {
            it++;
        }
    }
    pData

到了这里,关于C++(20):vector通过erase,erase_if删除符合条件的元素的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++】STL 算法 - 拷贝替换算法 ( 元素复制算法 - copy 函数 | 元素替换算法 - replace 函数 | 替换符合要求的元素算法 - replace_if 函数 )

    在 C++ 语言 的 标准模板库 ( STL , STL Standard Template Library ) 中 , 提供了 copy 元素复制算法函数 用于 将 一个容器中的元素 复制 到 另外一个 容器中 ; copy 元素赋值函数 将 输入容器 的 [ 起始迭代器, 终止迭代器 ) 范围 内的 元素 复制 到输出序列中 , 从输出容器 的 指定开始位置

    2024年01月20日
    浏览(59)
  • 《C++ primer》练习3.20:输出vector相邻元素的和&输出vector头尾对象的和

    最近看《C++ Primer》,有这样一个题目 读入一组整数并把它们存入一个vector对象,将每对相邻整数的和输出出来。 这里要注意输入的奇数个和偶数个的数的区别。偶数个整数的话刚好数全部用完,奇数个整数最后一个数空出来,也输出出来,后面没有数了(再使用后面的索引

    2024年02月09日
    浏览(31)
  • 在C++中,如何把vector中的某一项删除

    要在C++中从vector中删除某个元素,可以使用vector的erase()函数。erase()函数接受一个迭代器参数,该参数指向要删除的元素。以下是一个简单的例子: 在上面的例子中,我们使用erase()函数删除了vector中的第三个元素,即数字3。在调用erase()函数时,我们使用迭代器指向要删除的

    2024年02月16日
    浏览(45)
  • C++ remove_if函数(遍历元素,将满足条件的元素移动到容器的末尾)(C++一元函数对象)(括号运算符operator())

    C++ 中的 remove_if 函数是用于从容器中删除满足指定条件的元素的算法。它定义在头文件 algorithm 中,函数签名如下: 其中: first 和 last 分别表示容器中要处理的元素的范围,其中 first 指向第一个要处理的元素,last 指向最后一个要处理的元素的下一个位置。这个范围应该是左

    2024年02月14日
    浏览(34)
  • js查找数组中符合条件的元素

    js查找数组中符合条件元素的几种方法 一、利用for循环进行查找 二、filter() 方法 注意: filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。 filter() 不会对空数组进行检测。 filter() 不会改变原始数组。 三、find()方法 注意: find()方法

    2024年01月25日
    浏览(43)
  • Stream 获取集合中符合条件的最新(时间)的记录

    在执行某一业务数据查询的过程中需要通过时间范围从第三方提供的接口中获取到数据(list集合),然后根据其中的某一个或多个条件获从list集合中获取符合条件的记录,符合条件的记录可能有多条,我们只需要最新的一条即可。 2.1首先使用Stream 的filter方法进行条件过滤,

    2024年02月16日
    浏览(39)
  • chatgpt赋能python:如何选取符合条件的Dataframe

    当我们在处理数据时,经常需要针对特定的条件筛选出符合要求的数据。在Python中,pandas是常用的数据处理库,其DataFrame数据结构也是我们经常使用的数据类型之一。那么,如何选择符合条件的DataFrame呢?本篇文章将介绍几种常见的方法。 loc函数是pandas中用于根据标签选择数

    2024年02月08日
    浏览(40)
  • 筛选符合条件的数据行(Python Pandas 数据框中基于条件的行选择)

    筛选符合条件的数据行(Python Pandas 数据框中基于条件的行选择) 在处理数据的过程中,有时需要筛选出数据框中符合特定条件的行,以便对这些行进行进一步的处理或者分析。Python Pandas 库提供了多种方式来实现基于条件的行选择。 下面我们将演示如何使用 Pandas 实现基于

    2024年02月12日
    浏览(40)
  • C++中erase的用法

    erase的简单介绍 erase的两种用法 总结  1.erase的简单介绍         erase翻译过来带有消除的意思,所以在C++的string中可以用来消除单个字符或者长串字符,用起来是非常方便滴^_^  2.erase的两种用法         用法一:例如我想要删除下标为1后的所有字符         这样打印出来

    2024年02月13日
    浏览(32)
  • 鼠标悬浮在表格行上时,符合条件的数据会有提示文字

    鼠标悬浮在表格行上时,符合条件的数据会有提示文字 在这里再详细的描述一下文章解决的问题,比如说现在你的页面上有一个表格 el-table ,这个表格有两列,分别是姓名,性别。但是后端传过来的其实是三列(还有一个是分数),可是业务要求是不展示分数。这时当你的

    2024年02月12日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包