C/C++教程

C++ for_each

本文主要是介绍C++ for_each,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

for_each是C++泛型算法,其源码如下:

  template<typename _InputIterator, typename _Function>
    _Function
    for_each(_InputIterator __first, _InputIterator __last, _Function __f)
    {
      // concept requirements
      __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>)
      __glibcxx_requires_valid_range(__first, __last);
      for (; __first != __last; ++__first)
	__f(*__first);
      return _GLIBCXX_MOVE(__f);
    }
  • for_each的作用:

对[first, last)范围内的所有元素都执行Function fn的操作。

其中:__first != __last 保证了遍历容器过程中不会越界,最后一个迭代器必然会等于end()

具体如下代码:

void f(const std::vector<int> &c) {
  std::for_each(c.begin(), c.end(), [](int i) { std::cout << i; });
}

其作用就是依次遍历容器内的值,并将每个值作为funnction的入参传入,并将其打印。

这篇关于C++ for_each的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!