for_each |
template function |
template <class InputIterator, class Function>
Function for_each (InputIterator first, InputIterator last, Function f); |
<algorithm> |
Apply function to range
Applies function f to each of the elements in the range [first,last).
The behavior of this template function is equivalent to:
template<class InputIterator, class Function>
Function for_each(InputIterator first, InputIterator last, Function f)
{
while ( first!=last ) f(*first++);
return f;
}
|
Parameters
- first, last
- Input iterators to the initial and final positions in a sequence. The range used is [first,last), which contains all the elements between first and last, including the element pointed by first but not the element pointed by last.
- f
- Unary function taking an element in the range as argument. This can either be a pointer to a function or an object whose class overloads operator().
Its return value, if any, is ignored.
Return value
The same as
f.
Example
// for_each example
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
void myfunction (int i) {
cout << " " << i;
}
struct myclass {
void operator() (int i) {cout << " " << i;}
} myobject;
int main () {
vector<int> myvector;
myvector.push_back(10);
myvector.push_back(20);
myvector.push_back(30);
cout << "myvector contains:";
for_each (myvector.begin(), myvector.end(), myfunction);
// or:
cout << "\nmyvector contains:";
for_each (myvector.begin(), myvector.end(), myobject);
cout << endl;
return 0;
}
|
Output:
myvector contains: 10 20 30 myvector contains: 10 20 30
|
Complexity
Linear: Applies
f once to each element.
See also
transform | Apply function to range (function template) |
find | Find value in range (function template) |
search | Find subsequence in range (function template) |