Gibt es eine schnelle Möglichkeit, ein Set zu erstellen?

7

Momentan erstelle ich ein neues Set wie folgt:

%Vor%

Gibt es eine Möglichkeit, s in einer Zeile zu erstellen?

    
Amir Rachum 16.11.2010, 11:00
quelle

6 Antworten

7

Sie können in Boost.Assign nachsehen, was Ihnen erlaubt Dinge schreiben wie:

%Vor%     
icecrime 16.11.2010, 11:01
quelle
16
%Vor%

Ok, zugegebenermaßen zwei Zeilen:)

    
Moo-Juice 16.11.2010 11:03
quelle
4

Sie können sich Boost.Assign ansehen:

Ссылка

    
Stuart Golodetz 16.11.2010 11:01
quelle
4

Wenn Ihre Ausgangsdaten in einem Container std::some_container<A> a; sind, der Iteratoren beginnt und beendet, und dies sind Vorwärtsiteratoren oder die besten (sie sollten nur operator ++ überladen haben), dann können Sie auf diese Weise neue setzen.

%Vor%     
Mihran Hovsepyan 16.11.2010 14:00
quelle
4

In C ++ 0x definiert der Standard die Initialisierungsliste als Verbesserung für diese Art von (unangenehmem) Konstrukt.

Es ist jetzt viel einfacher:

%Vor%

Alles was es brauchte war, dass die Standardbibliothek den folgenden Konstruktor für set deklarierte:

%Vor%

und alle unsere Sorgen wurden ordentlich weggeschwemmt.

    
Matthieu M. 16.11.2010 13:46
quelle
3

Hier ist eine C ++ 0x-Alternative zur Antwort von Moo-Juice für den Fall, dass die Konstruktion von A teurer ist als für int .

%Vor%     
Steve Townsend 16.11.2010 11:55
quelle

Tags und Links