◐ Shell
clean mode source ↗

std::for_each — cppreference.com

De cppreference.com

<metanoindex/>

<tbody> </tbody>

Déclaré dans l'en-tête

<algorithm>

template< class InputIt, class UnaryFunction > UnaryFunction for_each( InputIt first, InputIt last, UnaryFunction f );

Applique la fonction donnée f objet à la suite de déréférencement chaque itération dans le [first, last) plage, dans l'ordre. Si InputIt est un itérateur modifiable, f peut modifier les éléments de la gamme par l'itérateur déréférencé. Si f renvoie un résultat, le résultat est ignoré .

Original:

Applies the given function object f to the result of dereferencing every iterator in the range [first, last), in order. If InputIt is a mutable iterator, f may modify the elements of the range through the dereferenced iterator. If f returns a result, the result is ignored.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Paramètres

first, last -

la gamme d'appliquer la fonction d'

Original:

the range to apply the function to

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

f -

l'objet de fonction unaire appliqué

Original:

the unary function object to be applied

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Type requirements
-InputIt must meet the requirements of InputIterator.
-UnaryFunction must meet the requirements of MoveConstructible. Does not have to be CopyConstructible

Retourne la valeur

f. (avant C++11)
std::move(f). (depuis C++11)

Complexité

Exactement last - first applications de f

Original:

Exactly last - first applications of f

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Mise en œuvre possible

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

Exemple

L'exemple suivant utilise une fonction lambda pour incrémenter tous les éléments d'un vecteur, puis calcule une somme d'eux:

Original:

The following example uses a fonction lambda to increment all of the elements of a vector and then computes a sum of them:

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

#include <vector>
#include <algorithm>
#include <iostream>

struct Sum {
    Sum() { sum = 0; }
    void operator()(int n) { sum += n; }

    int sum;
};

int main()
{
    std::vector<int> nums{3, 4, 2, 9, 15, 267};

    std::cout << "before: ";
    for (auto n : nums) {
        std::cout << n << " ";
    }
    std::cout << '\n';

    std::for_each(nums.begin(), nums.end(), [](int &n){ n++; });
    Sum s = std::for_each(nums.begin(), nums.end(), Sum());

    std::cout << "after:  ";
    for (auto n : nums) {
        std::cout << n << " ";
    }
    std::cout << '\n';
    std::cout << "sum: " << s.sum << '\n';
}

Résultat :

before: 3 4 2 9 15 267
after:  4 5 3 10 16 268
sum: 306

Voir aussi

applique une fonction à une série d'éléments

Original:

applies a function to a range of elements

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(fonction générique) [edit]
de gamme pour la boucle

exécute une boucle sur (depuis C++11) gamme

Original:

executes loop over range (depuis C++11)

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

[edit]