Was entspricht boost :: make_transform_iterator in der Standardbibliothek?

9

Wenn Sie mit einem const-Vektor arbeiten, funktioniert Folgendes nicht:

%Vor%

Stattdessen müssen Sie den Vektor in der gleichen Zeile initialisieren, in der er konstruiert ist. Aber auch mit dieser Einschränkung macht boost::make_transform_iterator es leicht, etwas mit den Elementen eines anderen Vektors zu tun, bevor sie in v verschoben werden. In diesem Beispiel ist convert eine unäre Funktion, die eine transformierte Version eines Eingabeelements zurückgibt:

%Vor%

Ich habe mir die Funktionen in <iterator> angesehen und sehe keine Entsprechung. Fehlt es einfach oder gibt es einen Grund, warum die Standardbibliothek es nicht hat?

    
user4085715 27.09.2014, 09:50
quelle

1 Antwort

4

Für C ++ 11 gibt es immer den Lambda-Inplace-Initialisierungstrick :

%Vor%

oder

%Vor%

Siehe Live On Coliru

Das heißt, ich würde die Boost Range Adapter bevorzugen: (auch Live On Coliru ) / strong>)

%Vor% %Vor%     
sehe 28.09.2014 21:40
quelle

Tags und Links