具有多个谓词的 C++11 算法

标签 c++ algorithm c++11 predicate

algorithm header 中的 std::find_if 等函数确实很有用,但对我来说,一个严重的限制是我只能为每个函数使用 1 个谓词调用 count_if

例如,给定一个像 std::vector 这样的容器,我想在 find_if 的相同迭代中同时应用多个谓词;标准库中有一些东西可以在保持这种功能性方法的同时使这成为可能?

最佳答案

只需将它们与 lambda 结合起来即可:

std::find_if(begin(vec), end(vec),
    [](elem_t val) {
        return f1(val) || f2(val);
    });

关于具有多个谓词的 C++11 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20754848/

相关文章:

c# - 在 visual studio 2013 中设置发布项目

c++ - 实现 Matrix 类加法运算符重载奇怪的输出

algorithm - Kosaraju 算法的步骤顺序

c++ - 在具有已删除复制构造函数的类的元素的数组初始化中需要但未使用的 move 构造函数

c++ - Arduino Mega 上的奇怪计算

c++ - 当我在 MFC(CButton) 中按下按钮时,不会实时更改值。我正在使用 sql server

arrays - 如何确定整数数组已经排序的程度/级别

c++ - 计算 N 个数的 LCM 模 1000000007

c++ - 带有定时器 C++ 成员函数的 std::function

c++ - move 类数据成员 (C++)