Gibt es eine Standardmethode zur Konvertierung von containerType1 nach containerType2?

8

Ich habe zwei Klassen A und B , und ein impliziter Konvertierungsoperator existiert, um von einem zum anderen zu gehen, so dass:

%Vor%

Gibt es eine Standardmethode zum Konvertieren von std::list<A> in std::list<B> ? (Oder sogar von std::vector<A> zu std::list<B> ).

Ich weiß, ich kann durch die Liste iterieren und die zweite Liste Element für Element erstellen, aber ich frage mich, ob es eine elegantere Lösung gibt.

Leider Ich kann nicht boost verwenden, aber aus Neugier als Bonusfrage, wenn Boost damit klarkommt, würde ich mich freuen, das auch zu wissen.

    
ereOn 31.08.2010, 09:21
quelle

1 Antwort

15

Nun, ja. Jeder Sequenzcontainertyp verfügt über einen Schablonenkonstruktor, der ein Paar Iteratoren (einen Iteratorbereich) als Eingabe akzeptiert. Es kann verwendet werden, um unabhängig von den Sequenztypen eine Sequenz aus einer anderen zu konstruieren, solange die Sequenzelementtypen ineinander konvertierbar sind. Wie zum Beispiel

%Vor%

Auch Sequenzcontainer haben assign member function, was dasselbe mit Zuweisungssemantik macht (im Gegensatz zur Initialisierungssemantik).

%Vor%     
AnT 31.08.2010, 09:24
quelle

Tags und Links