C++;高阶函数 标题中的许多标准C++函数是高阶函数的例子。

C++;高阶函数 标题中的许多标准C++函数是高阶函数的例子。,c++,function,higher-order-functions,C++,Function,Higher Order Functions,例如,count\u if函数采用一元谓词,这是一种可调用函数,并返回与给定谓词匹配的对象计数。由于count\u如果是一个以另一个函数为参数的函数,则它将成为一个参数 此示例不使用任何C++ 11特性,但C++ 11只增加了以前C++标准中对高阶函数的现有支持: #include <algorithm> #include <iostream> #include <vector> bool is_even(int i) { return i % 2 ==

例如,
count\u if
函数采用一元谓词,这是一种可调用函数,并返回与给定谓词匹配的对象计数。由于
count\u如果
是一个以另一个函数为参数的函数,则它将成为一个参数

此示例不使用任何C++ 11特性,但C++ 11只增加了以前C++标准中对高阶函数的现有支持:

#include <algorithm>
#include <iostream>
#include <vector>

bool is_even(int i) {
  return i % 2 == 0;
}

int main(int argc, char *argv[]) {
  std::vector<int> v;
  for (int i = 0; i < 10; ++i) {
    v.push_back(i);
  }
  std::cout
    << "count = "
    << std::count_if(v.begin(), v.end(), &is_even)
    << std::endl;

  return 0;
}

#包括,我用一个。

更高的顺序替换了
是不是
?在什么情况下,像多项式?你能举个例子吗?高阶函数只是把函数作为参数或返回函数的函数。在C++中,任何可调用对象(<代码> STD::函数指针,lambda,函子,任何实现<代码>操作程序()>代码>)的第五谷歌结果,您切换可调用函数<代码> ISWAN()/<代码>定义为<代码> [INT](INTI)>布尔O{{返回%i 2=0;} < /C> >,这里使用[] ](C++ 11标准)?它开始一个lambda表达式。
#include <algorithm>
#include <iostream>
#include <vector>

int main(int argc, char *argv[]) {
  std::vector<int> v = { 0, 1, 2, 3, 4, 5 };

  std::cout
    << "count = "
    << std::count_if(v.begin(),
                     v.end(),
                     [](int i) -> bool { return i % 2 == 0; })
    << std::endl;

  return 0;
}