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 |