Predicate for remove_if
Predicate for remove_if
我有一个向量,我想根据用户的输入删除各种内容。 例如,如果我有一个包含 {1 10 12 2 3 10 5 6 29} 的向量,并且我有兴趣删除大于 10 的所有内容,那么我如何为 remove_if 函数创建一个谓词来执行此操作。 以及如何使这个谓词代表用户输入。 第一次运行代码时,可能需要删除大于 10 的所有内容,但第二次可能需要删除大于 8 的所有内容,并且需要删除的内容取决于程序运行后给出的用户输入。
像这样:
#include <algorithm>
#include <vector>
void remove_greater(std::vector<int> & v, int n)
{
v.erase(
std::remove_if(v.begin(), v.end(), [n](int x) { return x > n; }),
v.end());
}
用法:
std::vector<int> v = {1, 10, 12, 2, 3, 10, 5, 6, 29};
remove_greater(v, 10);
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- 使用函数"remove"删除重复元素
- 如何将enable-if与模板参数和参数包一起使用
- 无论条件是否为true,if总是在c++中执行
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 是否可以使用if constexpr删除控制流语句
- 要与"if constexpr"一起使用的编译时消息(在预处理器之后)
- 如何删除peer if else分支中的冗长句子
- 链表的泛型函数remove()与成员函数remove)
- 我似乎对if/else的基本语句有问题:/
- if数组上的随机数
- 将按位if条件转换为普通if条件
- If语句在c++中被忽略
- 比较if语句中的数组值和int值
- 使用if-else将数字转换为单词
- 为什么简单的算术减法在"if"条件下不起作用?