Welche Bibliotheken brauche ich, um std :: Platzhalter zu verwenden?

8

Momentan versuche ich Kombinationen zu generieren und verwende folgenden Code:

%Vor%

Mit g ++ kann nicht kompiliert werden mit:

%Vor%

Ich dachte, dass std. :: Platzhalter in funktional deklariert sind, aber jetzt bin ich verwirrt. Sollte ich nur Boost benutzen?

Auch der Rest des Projekts verwendet C ++ 0x, gibt es also eine bessere Möglichkeit, dies mit C ++ 0x Features zu schreiben?

Jede Hilfe wird sehr geschätzt:)

    
shuttle87 23.12.2010, 07:25
quelle

2 Antworten

5

Warum benutzt du keine lambdas anstatt mühsamer Bindung? Wenn Sie C ++ 0x verwenden, ist es sinnvoll,

zu schreiben

std::sort(v.begin(), v.end(), [](int l, int r)->bool { return l > r; });

stattdessen. Beachten Sie, dass Sie dort den Rückgabetyp nicht explizit angeben müssen. Ich habe diesen Weg nur geschrieben, um es klarer zu machen.

    
Kirill Lykov 23.12.2010, 09:40
quelle
7

Natürlich gibt es einen besseren Weg. Verwenden Sie std :: greater_equal, anstatt das oben genannte zu tun. Überprüfen Sie hier , was es sonst noch im Funktionsbereich gibt.

Vergessen zu sagen - Um Platzhalter zu verwenden, müssen Sie C ++ 0x-Funktionen aktivieren.

    
BЈовић 23.12.2010 07:38
quelle

Tags und Links