STL for_each算法

本文内容来自C++Plus,本文只是本人的总结和翻译而已。本人只是C++的搬运工。

原文传送门:http://www.cplusplus.com/reference/algorithm/for_each/

for_each算法:遍历[first,last)区间里面的每个元素,并且调用function方法。

template
  Function for_each(InputIterator first, InputIterator last, Function fn)
{
  while (first!=last) {
    fn (*first);
    ++first;
  }
  return fn;      // or, since C++11: return move(fn);
}

如果[first,last)区间不为空,就循环遍历里面的每个元素,调用function。

测试代码如下:

#include      // std::cout
#include     // std::for_each
#include        // std::vector

void myfunction (int i) {  // function:
  std::cout << ' ' << i;
}

struct myclass {           // function object type:
  void operator() (int i) {std::cout << ' ' << i;}
} myobject;

int main () {
  std::vector myvector;
  myvector.push_back(10);
  myvector.push_back(20);
  myvector.push_back(30);

  std::cout << "myvector contains:";
  for_each (myvector.begin(), myvector.end(), myfunction);
  std::cout << '\n';

  // or:
  std::cout << "myvector contains:";
  for_each (myvector.begin(), myvector.end(), myobject);
  std::cout << '\n';

  return 0;
}

注意点:

for_each算法的作用在于他里面可以传递一个方法作为参数,这个方法可以是自己定义的,也可以是API。

你可能感兴趣的:(STL,STL,算法)