for_each

Da cppreference.com
Ir para: navegação, pesquisa
#include <algorithm>
 
template< class InputIterator, class UnaryFunction >
UnaryFunction for_each( InputIterator first, InputIterator last, UnaryFunction f );

Aplica uma certa função f a cada elemento da sequência delimitada por [first, last).

Índice

[editar] Parâmetros

first, last - a sequência de elementos no qual se deseja aplicar a função

f - a função a ser aplicada

[editar] Retorno

a função aplicada

[editar] Função equivalente

template<class InputIterator, class UnaryFunction>
UnaryFunction for_each(InputIterator first, InputIterator last, UnaryFunction f)
{
    for (; first != last; ++first) {
        f(*first);
    }
    return f;
}

[editar] Exemplo

No exemplo abaixo, uma função unária é definida para incrementar todos os elementos de um vetor:

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 << "Antes, nums[] contem: ";
   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 << "Depois, nums[] contem: ";
   for (int i = 0; i < N; i++) {
       std::cout << nums[i] << " ";
   }

Saída:

Antes, nums[] contem: 3 4 2 9 15 267
Depois, nums[] contem: 4 5 3 10 16 268

[editar] Complexidade

linear na distância entre first e last

[editar] Veja também

transform

Ferramentas pessoais
Espaços nominais
Variantes
Acções
Navegação
Ferramentas
Noutras línguas