Skym0sh0 schrieb:
Die "Algorithmen" aus algorithm sind letztlich normale Loops, die das machen was sie sollen.
Wenn du auf den C++ Referenz-Seiten guckst wird oft eine kleine Beispiel-Implementierung angeboten, viel mehr ist das meist auch nicht. Normalerweise sind noch sowas wie Debuginformationen oder sowas dabei, damit man Fehler einfacher findet, aber das wars auch.
Das ist nicht wahr. Zumindest beim GCC sind die so gut optimiert, wie es geht. copy wird zum Beispiel automatisch zu memmove (trivial kopierbare Objekte). Wenn das nicht geht, dann wird wenigstens die Schleife ggf. vom Optimierer entrollt (random access iteratoren) und erst wenn das auch nicht mehr geht, dann ist es eine naive Schleife. Außerdem werden parallele Algorithmen benutzt, sofern man den entsprechenden Compilerschalter umlegt. Das heißt man ist so schnell wie eine optimierte Funktion, aber dank Template-/Optimierermagie kann man immer copy benutzen, ohne sich Gedanken zu machen.
Ich vermute mal ganz stark, dass der andere große STL-Schreiber (Microsoft), das nicht großartig anders handhabt. Die Geschwindigkeit der STL-Implementierung ist eine wunderbare Möglichkeit zum Schwanzvergleich zwischen den verschiedenen Machern.