Unterschied zwischen Vektor und Liste Unterschied zwischen

Anonim

Vektor vs Liste

Häufig verwirrend für die Programmierer sind Vektoren und Listen Sequenzen, die in Array-Beständen in C ++ und Java verwendet werden. Die beiden Begriffe enthalten Array-Adressen, jedoch mit unterschiedlichen Methoden zum Halten von Arrays.

Die grundlegende Sache, die wir wissen müssen, ist, dass ein Array eine "Liste" ist, die einige oder alle Daten enthält, d. e., ganze Zahlen, Fließkommazahlen oder Zeichen und ist in Klammern "[]" definiert. "

Tatsächlich wirken Vektoren und Listen entsprechend den Instanzen. Sehen wir uns diese beiden Begriffe nacheinander an.

Vektoren

Vektoren werden zum Halten von Arrays und zum Zugreifen auf Elemente verwendet. Hier können Sie mit dem Operator "[]" beliebig auf jedes Element zugreifen. So wird es einfach, mit einer Vektoroperation alle Elemente oder ein bestimmtes Element zu durchsuchen. Wenn Sie also ein Objekt am Anfang, am Anfang oder in der Mitte einfügen, haben Vektoren einen Pluspunkt, weil Sie auf die zufällige Adresse zugreifen und dort Änderungen vornehmen können. Vektoren sind jedoch ein wenig langsam im Vergleich zu Listenobjekten. Vektoren werden als synchronisierte Objekte betrachtet, die beim wahlfreien Zugriff effizient sind, und sie halten die Daten ordnungsgemäß mit einer synchronisierten Liste fest. Ein Vektor wird ausgewählt, wenn in der

Mitte (Liste) oder von vorne kein Einfügen oder Löschen erforderlich ist.

Die Anzahl der Elemente in einem Array kann stark variieren.

Beispiel:

Vektor V;

V. einfügen (V. beginnen (), 3);

assert (V. Größe () == 1 && V. Kapazität ()> = 1 && V [0] == 3);

Listen

Listen sind "doppelt verknüpfte Sequenzen", die sowohl Vorwärts- als auch Rückwärts-Traversierungen unterstützen. Die Zeit für das Einfügen und Löschen am Anfang, Ende und in der Mitte ist konstant. Einfügen und Spleißen zwischen verknüpften Listen machen keine Iteration in den Elementen ungültig. Nur das Entfernen macht die Iteration ungültig. Sie sind nicht synchronisiert, so dass sie nicht zufällig zugänglich sind. Die Reihenfolge der Iterationen kann sich je nach Benutzer ändern, wirkt sich jedoch nicht auf Änderungen in den Elementen aus. Sie sind schneller als Vektoren und eignen sich ideal zum Einfügen und Löschen am Anfang, in der Mitte und am Ende der Elementlisten.

Beispiel:

#include

// Klassen-Template-Definition auflisten

….

int main ()

{

int array [4] = {2, 6, 4, 8};

Std:: Werte auflisten;

Std:: Liste OtherValues;

Zusammenfassung:

1. Eine Liste wird nicht synchronisiert, während ein Vektor ist.

2. Listen haben keine Standardgröße, während ein Vektor eine Standardgröße von 10 hat.

3. Listen und Vektoren sind beide dynamisch wachsende Arrays.

4. Eine Liste ist nicht Thread-sicher, während ein Vektor threadsicher ist.

5. Listen, die nur für das Hinzufügen und Löschen von Vorder- und Rückseite gelten, sind schneller, während

Vektoren mehr CPU benötigen.

6. Ein Vektor wächst zweimal um seine Größe, während eine Liste auf die Hälfte abnimmt, d.e., 50 Prozent.