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的入参传入,并将其打印。

上一篇:解决Android单个dex文件不能超过65536个方法问题


下一篇:【数据结构】算法 排序数组中查找元素的第一个和最后一个位置 Find First And Last Position of Element in Sorted Array