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); }
对[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的入参传入,并将其打印。