std::erase_if()的使用说明
时间: 2024-06-11 09:04:43 浏览: 413
std::erase_if() 是 C++ 20 中引入的一个函数模板,用于从容器中删除满足指定条件的元素。它的使用说明如下:
```cpp
template <typename Container, typename Predicate>
void erase_if(Container& container, Predicate pred);
```
- container:要操作的容器,可以是 std::vector、std::list、std::set 等。
- pred:删除条件,可以是一个函数对象或 lambda 表达式。
该函数会遍历容器中的每个元素,并使用 pred 对其进行判断。如果 pred 返回 true,则该元素将被删除。删除后,容器中的元素会自动重新排列。
下面是一个例子,演示了 std::erase_if() 的用法:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
// 删除所有奇数
std::erase_if(nums, [](int num) {
return num % 2 != 0;
});
// 输出结果:2 4
for (auto num : nums) {
std::cout << num << " ";
}
return 0;
}
```
阅读全文