std :: set_difference für den Listencontainer

8

Ich versuche, die Funktion set_difference aufzurufen und das Ergebnis in eine std :: list zu schreiben. Theoretisch ist es möglich, dies auf jedem sortierten Container zu tun, oder?

%Vor%

v gibt jedoch als leere Liste zurück. Liegt es daran, dass ich es nicht für den Listencontainer verwenden kann?

    
Dynelight 03.09.2012, 18:32
quelle

2 Antworten

11

Es liegt daran, dass v.begin() der Anfang einer leeren Sequenz ist. Die Elemente werden fast überall kopiert. Ersetze es durch std::back_inserter(v) . Dadurch erhalten Sie einen Iterator, der weiß, wie er in v einfügen kann.

    
Pete Becker 03.09.2012, 18:36
quelle
5

Sie müssen einen Ausgabe-Iterator angeben, der fügt ein. Verwenden Sie std::inserter .

%Vor%     
oldrinb 03.09.2012 18:39
quelle

Tags und Links