Unterschied vector und deque
-
Hab schon ein bisschen gegoogelt, aber noch nicht sehr viel zu dem Thema gefunden. Gibt's da überhaupt Unterschiede?
mfg.
-
Hab gerade was gefunden: Ein Unterschied ist, das man bei deques den Anfang und das Ende schneller löschen/hinzufügen kann. Gibt's nochmehr?
mfg.
-
Schau dir einfach den src an.
-
deque ist für schnelle einfüge- und löschoperationen am Anfang und Ende ausgelegt, während der vector random-access bietet
außerdem ist deque nur nen container-adapter
-
vector ist fast ein rohes array. hast *optimalen* op[].
-
Sicher? Also beim queue ist der Sequence-Member parametrisiert, deque ist dagegen "explizit implementiert".
Edit: bezog sich auf Any.
-
Any schrieb:
außerdem ist deque nur nen container-adapter
Falsch - deque ist ein vollwertiger Container.
Der Hauptunterschied zwischen beiden ist, daß ein deque (= Double Ended QUEue) an beiden Enden verlängert werden kann (beim Vektor benötigt ein push_front() O(n) Laufzeit). Außerdem gibt die deque unbenötigten Speicher auch wieder frei (der Vektor behält einmal reservierten Speicher auf Vorrat, bis er gelöscht wird).
Im Gegenzug dazu ist der Elementzugriff beim Vektor besser, weil die Daten phsysisch hintereinander angeordnet sind.