Перевод этой страницы?:

for_each

Синтаксис:

    #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