std::vector vs std::stack
Was ist der Unterschied zwischen std::vector
und std::stack
?
Offensichtlich Vektoren können löschen Sie die Elemente in der Auflistung (wenn auch viel langsamer als Liste) in der Erwägung, dass der stack ist gebaut, um einen LIFO-nur Abholung.
Allerdings stapeln sich schneller für das end-Element-manipulation? Ist es eine verknüpfte Liste oder dynamisch neu zugewiesen array?
Kann ich nicht finden viele Informationen über stacks, aber wenn ich Malte Sie richtig (Sie sind ähnlich eines tatsächlichen thread-stack; push, pop, etc. zusammen mit, dass top()
Methode), dann werden Sie scheinen perfekt für Fenster-stacking-management.
- Ersteres ist ein container, der letztere ist ein container-adapter.
- "wenn auch viel langsamer als Liste" Theoretisch, ja. Praktisch keine.
vector
zu übertreffenlist
für fast jeden Anwendungsfall. - für das löschen von Datensätzen in der Mitte von großen Vektor-datasets? Ist nicht viel langsamer als die Listen, die sind doppelt aufgeführt?
- Möglich, Duplikat der Was ist der wesentliche Unterschied zwischen einem Vektor und einem stack?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen
stack
ist kein container ist; es ist ein container adapter. Es hat einevector
,deque
oder ähnliche Behälter, speichert es als Mitglied, die tatsächlich hält die Elemente. Denken Sie daran: es ist deklariert als:Alle
stack
tut, ist zu begrenzen, die Benutzer-Schnittstelle auf diese interne container. Die performance-Eigenschaften der Operationen sind genau das, was die zugrunde liegenden container Leistungsdaten sind.