1.for_each遍历数组和容器

    for_each()函数是C++ STL中的一个遍历函数,函数原型如下:

template<typename InputIterator, typename Function>
Function for_each(InputIterator beg, InputIterator end, Function f) {
  while(beg != end) 
    f(*beg++);
}

先上代码:

// for_each example
#include <iostream>     // std::cout
#include <algorithm>    // std::for_each
#include <vector>       // 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<int> 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()对当前[begin, end)范围内的所有成员进行访问;

仿函数对每个成员进行相应操作;

for_each()返回functor的一个副本;

for_each()忽略functor的任何返回值;

算法时间复杂度为 O(n),n为容器中的变量数目.


 

发布了24 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/yonggandess/article/details/103024306
今日推荐