Die C + + Standard Template Library enthält zwei ähnlichen, aber unterschiedlichen Behälter: der Vektor und die Liste . Ein Vektor ist eine Reihe von nacheinander angeordneten Daten , die wachsen oder schrumpfen kann dynamisch , eine Liste ist eine Reihe von verknüpften Elementen , die nicht unbedingt sequentiell im Speicher angeordnet , sondern können nacheinander abgerufen werden, da jedes Element hat einen Link zum nächsten Punkt . Lernen Sie die Unterschiede zwischen dem Vektor und die Liste kann Ihnen helfen, mehr schreiben optimierte Lösungen in C + +. Insertion Geschwindigkeit
Die Daten von einem Vektor enthalten sequentiell im Speicher angeordnet , was bedeutet, dass, wenn Sie ein Objekt einfügen am Anfang eines Vektors , jedes Element in dem Vektor bewegt werden muss "unten" durch sein eins. Dies ist rechnerisch teuer, vor allem für große Vektoren. Diese Performance-Einbußen kommt , wenn ein Element eingefügt oder entfernt von jedem Ort , außer dem letzten Element des Vektors. Mit einer Liste , werden die Daten nicht unbedingt sequentiell im Speicher angeordnet , sondern enthält jedes Element in der Liste einen Link zum nächsten Element in der Liste. Wenn Sie in eine Liste einfügen , kann das Element überall in Erinnerung, die macht das Einfügen in eine Liste viel billiger als das Einfügen in einen Vektor .
Sortierung
platziert werden Die Liste Behälter hat einen integrierten Sortierfunktion Funktion, die es Ihnen erlaubt, Sortieren von Elementen auf einer bestimmten Kriterien. Der Vektor , jedoch nicht über diese integrierte Funktion , und deshalb müssen Sie schreiben die Sortierung Code selbst , wenn Sie einen Vektor sortieren möchten.
Random Access
< br >
Listen haben langsamer zufälligen Zugriffszeiten als Vektoren. In einem Vektor kann ein Element direkt über seinen Index zugegriffen werden. Dies gibt dem Vektor sehr schnell Direktzugriff-Zeit . Mit einer Liste , auf der anderen Seite , können Sie nur direkt auf die ersten und letzten Elemente , müssen Sie sich durch die Liste durchlaufen, um andere Elemente zugreifen , dies kann sehr langsam sein für große Listen
Größenänderung .
Vektoren wachsen dynamisch als Gegenstände, um sie hinzugefügt werden. Wenn ein Vektor wächst , verdoppelt sie die Anzahl der Elemente es enthalten kann. Dies kann erzwingen, dass der gesamte Vektor an einer anderen Stelle im Speicher verschoben werden , kann die rechenintensiv sein . Ignorieren Sie nicht brauchen, um ihre Elemente zusammenhängend im Speicher ablegen kann und daher wachsen oder schrumpfen ein Element in einer Zeit, ohne sich jemals um die gesamte Liste an einen neuen Speicherort kopieren.