C++ std::list 的 remove_if方法

在C++ STL 中,std::list 是一个双向链表容器,提供了 remove_if 方法用于在列表中移除满足特定条件的元素。remove_if 方法接受一个谓词函数(predicate function)作为参数,用于判断是否移除当前元素。下面是一个示例代码,演示如何使用 remove_if 方法从 std::list 中移除满足特定条件的元素:

cpp 复制代码
#include <iostream>
#include <list>
#include <algorithm>

// 定义一个谓词函数,用于判断是否移除元素
bool isOdd(int num) {
    return num % 2 != 0;
}

int main() {
    std::list<int> myList = {1, 2, 3, 4, 5, 6, 7, 8, 9};

    // 移除列表中的奇数元素
    myList.remove_if(isOdd);

    // 打印移除元素后的列表
    for (const auto& elem : myList) {
        std::cout << elem << " ";
    }
    std::cout << std::endl;

    return 0;
}

在这个示例中:

  • isOdd 是一个谓词函数,用于判断一个整数是否是奇数。
  • myList.remove_if(isOdd) 使用 remove_if 方法移除列表中所有奇数元素。
  • 最后通过循环遍历列表,打印移除元素后的列表内容。

你可以根据自己的需求定义不同的谓词函数,用于判断是否移除特定的元素。这是使用 std::listremove_if 方法的一个简单示例。

相关推荐
cpp_250110 分钟前
P2347 [NOIP 1996 提高组] 砝码称重
数据结构·c++·算法·题解·洛谷·noip·背包dp
Hugh-Yu-13012314 分钟前
二元一次方程组求解器c++代码
开发语言·c++·算法
楼田莉子21 分钟前
同步/异步日志系统:日志落地模块\日志器模块\异步日志模块
linux·服务器·c++·学习·设计模式
文祐21 分钟前
C++类之虚函数表及其内存布局
开发语言·c++
小狄同学呀29 分钟前
同样的global,不同的audioLibPath——记一次诡异的内存错位
c++·windows
编程大师哥38 分钟前
C++类和对象
开发语言·c++·算法
Rabitebla1 小时前
C++ 和 C 语言实现 Stack 对比
c语言·数据结构·c++·算法·排序算法
旖-旎1 小时前
递归(汉诺塔问题)(1)
c++·学习·算法·leetcode·深度优先·递归
深邃-1 小时前
【数据结构与算法】-顺序表链表经典算法
java·c语言·数据结构·c++·算法·链表·html5
努力学习的小廉1 小时前
我爱学算法之—— 前缀和(上)
c++·算法