Синтаксис:
#include <algorithm> UnaryFunction for_each( input_iterator start, input_iterator end, UnaryFunction f );
Алгоритм for_each
применяет функцию f
к каждому элементу между start
и end
. Возвращаемое значение for_each
- функция 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++ ) { cout << nums[i] << " "; } cout << endl; for_each( nums, nums + N, increment<int>() ); cout << "After, nums[] is: "; for( int i = 0; i < N; i++ ) { cout << nums[i] << " "; } cout << endl;
Этот код производит следующий вывод:
Before, nums[] is: 3 4 2 9 15 267 After, nums[] is: 4 5 3 10 16 268