Unterschied zwischen Vektor und Liste

Vektor gegen Liste

Für die Programmierer oft verwirrend, sind Vektoren und Listen Sequenzen, die in Arrays von C ++ und Java verwendet werden. Die beiden Begriffe enthalten Array-Adressen, jedoch mit unterschiedlichen Methoden zum Halten von Arrays.
Das Grundlegende, das wir wissen müssen, ist, dass ein Array eine "Liste" ist, die einige oder alle Daten enthält, d.
Tatsächlich wirken Vektoren und Listen nach den Instanzen. Schauen wir uns diese beiden Begriffe also einzeln an.

Vektoren
Vektoren werden beim Array-Halten und beim Zugriff auf Elemente verwendet. Hier können Sie mit dem Operator "[]" beliebig auf jedes Element zugreifen. So ist es einfach, alle Elemente oder ein bestimmtes Element mit einer Vektoroperation durchzusehen. Wenn Sie also am Ende, am Anfang oder in der Mitte ein Objekt einfügen, haben Vektoren einen Pluspunkt, da Sie auf die Zufallsadresse zugreifen und dort Änderungen vornehmen können. Vektoren sind jedoch im Vergleich zu Listenobjekten etwas langsam. Vektoren werden als synchronisierte Objekte betrachtet, die beim Direktzugriff effizient sind, und sie enthalten die Daten ordnungsgemäß in einer synchronisierten Liste. Ein Vektor wird immer dann ausgewählt, wenn keine Einfügung oder Löschung erforderlich ist
Mitte (Liste) oder von vorne.
Die Anzahl der Elemente in einem Array kann erheblich variieren.
Beispiel:
Vektor V;
V.insert (V.begin (), 3);
assert (V. size () == 1 && V.capacity ()> = 1 && V [0] == 3);

Listen
Listen sind "doppelt verknüpfte Sequenzen", die sowohl Vorwärts- als auch Rückwärtsdurchlauf unterstützen. Die Zeit, die beim Einfügen und Löschen am Anfang, Ende und in der Mitte benötigt wird, ist konstant. Durch Einfügen und Verbinden von verknüpften Listen wird die Wiederholung in den Elementen nicht ungültig. Nur das Entfernen macht die Iteration ungültig. Sie werden nicht synchronisiert, so dass sie nicht zufällig zugänglich sind. Die Reihenfolge der Iterationen kann sich je nach Benutzer ändern, die Änderungen an den Elementen werden jedoch nicht beeinflusst. Sie sind schneller als Vektoren und eignen sich ideal zum Einfügen und Löschen am Anfang, in der Mitte und am Ende der Elementliste.

Beispiel:
#umfassen
// Liste Klassenvorlage Definition
… .
int main ()

int Array [4] = 2, 6, 4, 8;
std :: list values;
std :: list otherValues;

Zusammenfassung:
1. Eine Liste wird nicht synchronisiert, solange ein Vektor vorhanden 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 threadsicher, während ein Vektor threadsicher ist.
5. Listen, da sie nur für das Hinzufügen und Löschen in der Vorder- und Rückseite gelten, sind schneller
Vektoren brauchen mehr CPU.
6. Ein Vektor wächst zweimal um seine Größe, während die Liste auf die Hälfte abnimmt, d. H. 50%.