Das folgende Code-Beispiel stammt aus dem Buch
Objektorientiertes Programmieren in C++
- Ein Tutorial für Ein- und Umsteiger
von Nicolai Josuttis, Addison-Wesley München, 2001
© Copyright Nicolai Josuttis 2001
#include <set>
#include <vector>
#include <algorithm>
#include <iterator>
#include <iostream>
// Funktionsobjekt, das den übergebenen Wert addiert
class Add {
private:
int val; // zu addierender Wert
public:
// Konstruktor (initialisiert den zu addierenden Wert)
Add (int w) : val(w) {
}
// ``Funktionsaufruf'' addiert den zu addierenden Wert
int operator() (int elem) const
{
return elem + val;
}
};
int main()
{
std::set<int> coll1;
std::vector<int> coll2;
// Elemente mit den Werten 1 bis 9 in coll1 einfügen
for (int i=1; i<=9; ++i) {
coll1.insert(i);
}
// Elemente in coll1 ausgeben
copy (coll1.begin(), coll1.end(), // Quelle: coll1
std::ostream_iterator<int>(std::cout," ")); // Ziel: cout
std::cout << std::endl;
// jedes Element in coll1 nach coll2 transformieren
// - dabei jeweils 10 addieren
transform (coll1.begin(),coll1.end(), // Quelle
std::back_inserter(coll2), // Ziel (einfügend)
Add(10)); // Operation
// Elemente in coll2 ausgeben
copy (coll2.begin(), coll2.end(), // Quelle: coll1
std::ostream_iterator<int>(std::cout," ")); // Ziel: cout
std::cout << std::endl;
}