cpp/algorithm/for each
来自cppreference.com
- 所在头文件**:algorithm
- 函数原型**:
template< class InputIterator, class UnaryFunction > UnaryFunction for_each( InputIterator first, InputIterator last, UnaryFunction f );
对区间[first, last)之中的每一个元素应用给定的函数f
- 参数**
first, last - 应用函数的区间
f - 所应用的函数
- 返回值**
所应用的函数
- 等价函数**
template<class InputIterator, class UnaryFunction> UnaryFunction for_each(InputIterator first, InputIterator last, UnaryFunction f) {
for (; first != last; ++first) {
f(*first);
}
return f;
}
- 例子**
下面的代码定义了一个一元函数对象,用来增加数组中每一个元素的值:
template<class T> struct increment : public unary_function<T, void> {
void operator()(T& x)
{
x++;
}
};
...
int nums[] = {3, 4, 2, 9, 15, 267};
const int N = 6;
cout << "Before, nums[] is: ";
for (int i = 0; i < N; i++) {
std::cout << nums[i] << " ";
}
std::cout << std::endl;
std::for_each(nums, nums + N, increment<int>());
std::cout << "After, nums[] is: ";
for (int i = 0; i < N; i++) {
std::cout << nums[i] << " ";
}
- 输出:**
Before, nums[] is: 3 4 2 9 15 267 After, nums[] is: 4 5 3 10 16 268
- 复杂度**
线性