cpp/algorithm/for each

来自cppreference.com
跳转到: 导航, 搜索
    • 所在头文件**:algorithm
    • 函数原型**:

template< class InputIterator, class UnaryFunction > UnaryFunction for_each( InputIterator first, InputIterator last, UnaryFunction f );

对区间[first, last)之中的每一个元素应用给定的函数f


    • 参数**

first, last - 应用函数的区间

f - 所应用的函数


    • 返回值**

所应用的函数


    • 等价函数**

template<class InputIterator, class UnaryFunction> UnaryFunction for_each(InputIterator first, InputIterator last, UnaryFunction f) {

   for (; first != last; ++first) {
       f(*first);
   }
   return f;

}

    • 例子**

下面的代码定义了一个一元函数对象,用来增加数组中每一个元素的值:

template<class T> struct increment : public unary_function<T, void> {

   void operator()(T& x)
   {
       x++;
   }

};

  ...

  int nums[] = {3, 4, 2, 9, 15, 267};
  const int N = 6;

  cout << "Before, nums[] is: ";
  for (int i = 0; i < N; i++) {
      std::cout << nums[i] << " ";
  }
  std::cout << std::endl;

  std::for_each(nums, nums + N, increment<int>());

  std::cout << "After, nums[] is: ";
  for (int i = 0; i < N; i++) {
      std::cout << nums[i] << " ";
  }
  
    • 输出:**

Before, nums[] is: 3 4 2 9 15 267 After, nums[] is: 4 5 3 10 16 268

    • 复杂度**

线性

个人工具
名字空间
操作
导航
工具箱
其他语言