Template-Klasse vector, Iteratoren...
-
Hier die Deklaration/Definition (
kriege das immmer durcheinander):
vector< pair<unsigned, unsigned> > trace;
In einer Schleife fülle ich das Array dann:
trace.push_back(waste);
Dann will ich das erste Elemement loswerden. Hier mein Versuch:
trace.begin() = trace.erase(trace.begin);
Klappt aber leider nicht
P.S. Das ganze soll ohne temporäre Variablen ablaufen.
-
Was heisst: "Klappt nicht"?
-
Hinter dem zweiten begin fehlen die runden Klammern, die Zuweisung an begin() ist Quatsch.
-
Stimmt, die runden Klammern beim rechten begin habe ich vergessen.
Jetzige Fehlermeldung: Linker Operand muss ein L-Wert sein.
Aber gibt begin nicht eine nicht konstante Referenz zurück?
-
Wie gesagt, diese Zuweisung ist Quatsch. Was willst du damit überhaupt erreichen?
-
Wie wärs einfach mit
trace.erase(trace.begin());
??
MfG SideWinder
-
Hmm... kritisch.
-
Für solche sachen (erstes element in der liste löschen usw.) ist im normalfall ein deque besser geeignet. Es bietet sogar explizit funktionen für das 'quueing' an.