for_each() - der ganze Quelltext

Vorweg noch ein Hinweis:

showIt ist ein Klassentemplate für einparametrige (unäre) Funktionsobjekte. Damit von anderen Programmteilen vielleicht benötigte Typbezeichner auch zur Verfügung gestellt werden, ist es zweckmäßig showIt vom Klassentemplate unary_function<T,void> abzuleiten. Dann stehen die Typbezeichner argument_type (hier T) und result_type (hier void) zur Verfügung. (siehe auch sgi)

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

using namespace std;

template <typename T>
class showIt : public unary_function<T,void>
// T ist der Parametertyp, void der Resultatstyp dieses Operators ()
{
 public:
  void operator()(const T& value) const
  {cout << value << ' ' << flush;}
};

template <typename T>
void showVectorContent(const vector<T>& v)
{
 for_each(v.begin(),v.end(),showIt<T>());
}

int main()
{
 vector<int> V1;
 V1.push_back(5);
 V1.push_back(9);
 V1.push_back(2);
 showVectorContent(V1);
 return 0;
}