SGI

for_each

Category: algorithms Component type: function

Prototype

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

Description

For_each applies the function object f to each element in the range [first last); f's return value if any is ignored. Applications are performed in forward order i.e. from first to last. For_each returns the function object after it has been applied to each element. [1]

Definition

Defined in the standard header algorithm and in the nonstandard backward-compatibility header algo.h.

Requirements on types

Preconditions

Complexity

Linear. Exactly last - first applications of UnaryFunction.

Example

template<class T> struct print : public unary_function<T
void>
{
  print(ostream& out) : os(out)
count(0) {}
  void operator() (T x) { os << x << ' '; ++count; }
  ostream& os;
  int count;
};

int main()
{
  int A[] = {1
4
2
8
5
7};
  const int N = sizeof(A) / sizeof(int);

  print<int> P = for_each(A
A + N
print<int>(cout));
  cout << endl << P.count << " objects printed." << endl;
}

Notes

[1] This return value is sometimes useful since a function object may have local state. It might for example count the number of times that it is called or it might have a status flag to indicate whether or not a call succeeded.

See also

The function object overview count copy
[Silicon Surf] [STL Home]
Copyright © 1999 Silicon Graphics Inc. All Rights Reserved. TrademarkInformation