probleme mit rbegin() und deque
-
d.end() - 1;
-
ok
-
Ow die Deque legt automatisch neue Elemente an, sobald man dem Ende nahe kommt.
-
BigGreenFoot schrieb:
Ow die Deque legt automatisch neue Elemente an, sobald man dem Ende nahe kommt.
Darauf solltest du dich besser nicht verlassen. Selbst wenn sie noch zusätzlichen Speicher auf Vorrat hält, wird sie nichts davon mitbekommen, wenn du über das Ende hinausschreibst.
Eine Möglichkeit, eine Referenz auf das neu eingefügte End-Element zu bekommen, wärepos=d.insert(d.end(),wert);
-
Gut trifft das auch zu wenn man den zeiger nur durch inclementieren, und declementieren verändert?
-
Natürlich. Du kannst nicht davon ausgehen, dass sich an der Grösse des Containers was änderst, wenn du irgendwas mit den Zeigern/Iteratoren auf dessen Elemente anstellst. Inkrementieren des
end()-Iterators ist immer undefiniertes Verhalten.Aber benutze doch einfach die dafür vorgesehenen Memberfunktionen, wenn du Elemente einfügen willst.
-
Die declaration von insert ist void insert(iterator, obj%)
?!?
Cstoll: Wiso dan pos=d.insert(d.end(), wert);
-
BigGreenFoot schrieb:
Die declaration von insert ist void insert(iterator, obj%)
Nein, selbst wenn man % durch & ersetzt nicht.
Schau mal hier: http://www.cplusplus.com/reference/stl/deque/insert
-
Interessant!!! Das was ihr schreibt stimmt, aber dennoch is irgendwo der Wurm drin.
In meinem Buch Einstieg in C++ 4. Auflage von Arnold Willemer, Seite 398, Tabellenspalte 20 heißt es „void inesrt(iterator, obj&)“.
-
Da wäre aber noch was wie kann ich etwas vorne anhängen, und einen Zeiger darauf setzen?