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