Erstellen lesbarer und Concise C ++ Code

Einer der Vorteile von C ++ ist, dass Sie kurze Code erstellen können, die leicht zu lesen ist. Weil Sie mehr von der Code auf einen Blick sehen können, C ++ ist oft einfacher, als auch zu verstehen, weil Sie die gesamte Lösung für ein bestimmtes Problem nicht den Editor Seite scrollen, um zu sehen.

Es gibt jedoch einige Arten von C ++ Probleme, die eine ziemlich ausführlichen Lösung in früheren Versionen von C ++ erforderte. Beginnend mit C ++ 11 haben Entwickler eine neue Technik für diese Probleme in einer Weise zu lösen, die C ++ Code wieder in seine kurze Wurzeln bringen.

Sie können eine Reihe von C ++ Entwicklungsprobleme mit Lambda-Ausdrücke zu lösen, aber das typische Problem ist eines der besten Hotels der Code übersichtlicher und leichter zu lesen. Es gibt absolut nichts falsch mit der Problem Beispiel gezeigt - es funktioniert gut, wie dargestellt.

#einschließen #einschließen #einschließen using namespace std-Klasse MyFunctor {public: void operator () (int x) {cout lt; lt; x lt; lt; Endl -}} - Leere ProcessVector (Vektor vect) {MyFunctor Func-for_each (vect.begin (), vect.end (), Func) -} int main () {vector MyVector-MyVector.push_back(1)-MyVector.push_back(2)-MyVector.push_back(3)-MyVector.push_back(4)-ProcessVector(MyVector)-}

In diesem Fall erzeugt das Beispiel a Vektor, myvector, und füllt sie mit Daten. Es ruft dann ProcessVector () eine Aufgabe mit den Daten in dem Vektor ausführen.

Der Aufruf ProcessVector () schafft eine Funktors - eine spezielle Objektklasse, die so tut, als wenn es eine Funktion - benannt Func. Dies ist eine äußerst nützliche Art einer Klasse. Denn jetzt, alles, was Sie wissen müssen, ist, dass es sich um eine besondere Art einer Klasse ist, die wie eine Funktion wirkt.

Das für jede() Algorithmus ist Teil der Standardbibliothek. Er verarbeitet jedes Element in vect, der Vektor übergeben ProcessVector (), an dem ersten Element ausgehend (definiert durch vect.begin ()) Und mit dem letzten Element endet (definiert durch vect.end ()) unter Verwendung von Func.

Wenn man sich MyFunctor, sehen Sie eine Definition für eine Operator das erfordert eine einzige int Eingang, x. Alles, was der Code tut ausgegeben x an die Konsole. So sehen Sie die folgende Ausgabe von diesem Beispiel.

1234

Menü