Was sind Funktoren in C++ und wozu braucht man sie?
Hallo! Ich lerne C++ und bin auf den Begriff "Funktor" (functor) gestoßen. Ich habe gelesen, dass es so etwas wie ein Objekt ist, das sich wie eine Funktion verhält. Aber ich verstehe nicht ganz, wozu das nötig ist, wenn es doch normale Funktionen und Funktionszeiger gibt.\n\nZum Beispiel weiß ich, dass man eine Funktion als Comparator an `std::sort` übergeben kann:\n```cpp\nbool compare(int a, int b) {\n return a < b;\n}\nstd::sort(vec.begin(), vec.end(), compare);\n```\n\nAber warum sollte man ein Objekt mit überladenem `operator()` verwenden? Was ist der Vorteil? Ich habe gehört, dass Funktoren einen Zustand speichern können, verstehe aber nicht, wie man das praktisch anwenden kann. Könnt ihr das an einem einfachen Beispiel erklären, wo ein Funktor wirklich praktischer ist als eine normale Funktion?\n\nUnd noch eine Frage: Sind Funktoren dasselbe wie Lambda-Ausdrücke? Oder sind das verschiedene Dinge? Ich wäre für eine ausführliche Erklärung dankbar.
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen