当前位置: 首页 > news >正文

C++ STL remove, remove_if 用法

一:功能

        移除序列中(满足给定条件)的元素,该操作并不是真的将元素删除,而是序列的size不变,只是更新了迭代器,该函数会返回最后一个未删除元素的位置。

二:用法

#include <vector>
#include <algorithm>
#include <iostream>int main() {std::vector<int> data{1, 2, 3, 4, 5};auto it = std::remove(data.begin(), data.end(), 3);for (auto v : std::ranges::subrange(data.begin(), it))std::cout << v << " ";std::cout << "\n";data.erase(it, data.end()); // Erase sub-rangefor (auto v : data)std::cout << v << " ";std::cout << "\n";auto is_even = [](int v) { return v % 2 == 0; };it = std::remove_if(data.begin(), data.end(), is_even);for (auto v : std::ranges::subrange(data.begin(), it))std::cout << v << " ";std::cout << "\n";data.resize(it - data.begin()); // Random Access Ranges onlyfor (auto v : data)std::cout << v << " ";std::cout << "\n";
}

http://www.lryc.cn/news/408201.html

相关文章:

  • HarmonyOS NEXT 开发之ArkTS基础入门
  • UE5 C++跑酷练习(Part2)
  • 从0开始搭建vue + flask 旅游景点数据分析系统(二):搭建基础框架
  • 【过滤器 vs 拦截器】SpringBoot中过滤器与拦截器:明智选择的艺术(如何在项目中做出明智选择)
  • 2024-06学习笔记
  • 【VUE】封装一个追随鼠标的漂浮组件框架
  • mapstruct与lombok结合使用
  • 【SpringBoot】Web开发之URL映射
  • 对递归的一些理解。力扣206题:翻转链表
  • Kafka面试三道题
  • C/C++编程-算法学习-数字滤波器
  • maven介绍 搭建Nexus3(maven私服搭建)
  • 电商项目之如何判断线程池是否执行完所有任务
  • 【前端 15】Vue生命周期
  • PCIe总线-Linux内核PCIe软件框架分析(十一)
  • 视觉SLAM第二讲
  • mysql1055报错解决方法
  • Java的@DateTimeFormat注解与@JsonFormat注解的使用对比
  • 德国云手机:企业移动办公解决方案
  • 【React】useState:状态管理的基石
  • 商品中心关于缓存热key的解决方案
  • 【Python系列】Parquet 数据处理与合并:高效数据操作实践
  • 大脑自组织神经网络通俗讲解
  • org.springframework.context.annotation.DeferredImportSelector如何使用?
  • 缓慢变化维
  • Vue常用的指令都有哪些?都有什么作用?什么是自定义指令?
  • kettle从入门到精通 第八十一课 ETL之kettle kettle中的json对象字段写入postgresql中的json字段正确姿势
  • 计算机网络实验-RIP配置与分析
  • 33.【C语言】实践扫雷游戏
  • git学习笔记(总结了常见命令与学习中遇到的问题和解决方法)