std::for_each
De cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Defined in header <algorithm>
|
||
template< class InputIt, class UnaryFunction > UnaryFunction for_each( InputIt first, InputIt last, UnaryFunction f ); |
||
Aplica la función
f
objeto especificado en el resultado de la eliminación de referencias a cada iteración de la [first, last)
rango, en orden. Si InputIt
es un iterador mutable, f
podrá modificar los elementos de la serie a través del repetidor sin referencia. Si f
devuelve un resultado, el resultado es ignorado .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.
You can help to correct and verify the translation. Click here for instructions.
Contenido |
[editar] Parámetros
first, last | - | el intervalo para aplicar la función a
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 | - | el objeto de la función unaria a aplicar
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
|
[editar] Valor de retorno
f
. (hasta C++11)
std::move(f). (desde C++11)
[editar] Complejidad
Exactamente
last
- first
aplicaciones 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.
You can help to correct and verify the translation. Click here for instructions.
[editar] Posible implementación
template<class InputIt, class UnaryFunction> UnaryFunction for_each(InputIt first, InputIt last, UnaryFunction f) { for (; first != last; ++first) { f(*first); } return f; } |
[editar] Ejemplo
El ejemplo siguiente utiliza un lambda función para incrementar todos los elementos de un vector y después calcula una suma de ellas:
Original:
The following example uses a lambda función 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.
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'; }
Output:
before: 3 4 2 9 15 267 after: 4 5 3 10 16 268 sum: 306
[editar] Ver también
se aplica una función a una serie de elementos 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. (función de plantilla) | |
rango de bucle | ejecuta un bucle sobre (desde C++11) rango
Original: executes loop over range (desde C++11) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |