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