functionals / funktionsobjekte -> parameterzahl??
-
hi,
ich beschäftige mich gerade mit funktionsobjekten, allerdings bin ich bisher in einem punkt nicht viel schlauer geworden.
wenn ich z.b. for_each() nehme, muss ich ja drei parameter angeben: einen iterator auf beispielsweise den anfang eines vector<T> und einen zweiten iterator auf dessen ende. beim dritten parameter bleibt es mir selbst überlassen, ob ich eine funktion oder ein funktionsobjekt nehme. ich darf aber nur eine funktion mit einem parameter
bzw. ein funktionsobjekt übergeben, dessen überladener operator() auch nur ein argument entgegen nimmt. woher weiß ich aber, wieviele parameter die funktionen/funktionsobjekte haben müssen, die ich den algorithmus-funktionen wie for_each, sort, merge usw. übergeben darf. schließlcih gibt es ja unäre, binäre und sogar funktionsobjekte ohne parameter. steht sowas nur in referenzen oder gibt es da eine ergel, oder bin ich voll auf dem holzweg?danke
-
for_each geht einfach von einem unären funktionsobjekt aus
-
Original erstellt von Mr. N:
for_each geht einfach von einem unären funktionsobjekt ausja, aber wenn man das nicht wüsste, müsste man in einer referenz nachschlagen, oder gibt es igrendeine simple regel, die einem sagt, wieviele parameter der operator() von einem funktionsobjekt haben muss, damit dieses funktionsobjekt einer bestimmten algorithmus-funktion übergeben werden kann!?
in meinem buch steht nämlich nichts weiteres dazu, was mich wundert.
[ Dieser Beitrag wurde am 27.05.2003 um 20:09 Uhr von Kräuterkundestudent editiert. ]
-
Hi!
Du kannst ja einfach unter STL Referenz nachgucken, wenn du dir zum Beispiel die Funktion for_each anguckst, wirst du sehen, dass der letzte Parameter eine UnaryFunction ist.
-
sehr schön...das wars, was ich wissen wollte.
danke