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:
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?
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%