Eines der Dinge, die Sie nur vermeiden, grundlegende Algorithmen in C ++ 11 zu schreiben, ist die Verfügbarkeit von Lambdas in Kombination mit den von der Standardbibliothek bereitgestellten Algorithmen.
Ich benutze diese jetzt und es ist unglaublich, wie oft Sie einfach sagen, was Sie tun möchten, indem Sie count_if (), for_each () oder andere Algorithmen verwenden, anstatt die verdammten Schleifen erneut schreiben zu müssen.
Sobald Sie einen C ++ 11-Compiler mit einer vollständigen C ++ 11-Standardbibliothek verwenden, haben Sie keine gute Entschuldigung mehr, keine Standardalgorithmen zum Erstellen Ihrer zu verwenden . Lambda töte es einfach.
Warum?
In der Praxis (nachdem ich diese Art des Schreibens von Algorithmen selbst verwendet habe) fühlt es sich viel einfacher an, etwas zu lesen, das aus einfachen Wörtern besteht, die bedeuten, was getan wird, als mit einigen Schleifen, die Sie entschlüsseln müssen, um die Bedeutung zu kennen. Das automatische Ableiten von Lambda-Argumenten würde jedoch viel dazu beitragen, die Syntax leichter mit einer Raw-Schleife vergleichbar zu machen.
Grundsätzlich sind Lesealgorithmen, die mit Standardalgorithmen erstellt wurden, viel einfacher als Wörter, die die Implementierungsdetails der Schleifen verbergen.
Ich vermute, dass nur übergeordnete Algorithmen berücksichtigt werden müssen, da wir Algorithmen auf niedrigerer Ebene haben, auf denen wir aufbauen können.