Unterschied zwischen Vektor und Liste
- 4521
- 758
- Leonhard Lesch
Vector vs List
Oft verwirrend für die Programmierer, Vektoren und Listen sind Sequenzen, die in Array -Bestandteilen in C ++ und Java verwendet werden. Die beiden Begriffe halten Array -Adressen an.
Das Grunde, was wir wissen müssen, ist, dass ein Array eine „Liste“ ist, die einige oder alle Daten enthält, ich.e., Ganzzahlen, schwimmende Punkte oder Charaktere und sind in Klammern definiert “[].”
Tatsächlich handeln Vektoren und Listen nach den Instanzen. Schauen wir uns diese beiden Begriffe nacheinander an.
Vektoren
Vektoren werden in Array -Holding und Elementen zugreifen. Hier können Sie auf jedes Element zugreifen. Daher wird es einfach, alle Elemente oder ein bestimmtes Element mit einem Vektorvorgang durchzusehen. Wenn Sie also am Ende, am Anfang oder in der Mitte ein Objekt einfügen, haben Vektoren einen Pluspunkt, da Sie auf die zufällige Adresse zugreifen und dort Änderungen vornehmen können. Die Vektoren sind jedoch im Vergleich zu Listenobjekten etwas langsam. Vektoren gelten als synchronisierte Objekte, effizient im Zufallszugriff, und halten die Daten ordnungsgemäß mit einer synchronisierten Liste. Ein Vektor wird ausgewählt, wenn nicht in die Einfügung oder Löschen erforderlich ist
Mitte (Liste) oder von vorne.
Die Anzahl der Elemente in einem Array kann dramatisch variieren.
Beispiel:
Vektor V;
V.Einfügen (v.begin (), 3);
Assert (v.size () == 1 && v.CAPAPY ()> = 1 && v [0] == 3);
Listen
Listen sind "doppelt verknüpfte Sequenzen", die sowohl Vorwärts- als auch Rückwärtstraversal unterstützen. Die Zeit, die in der Insertion und Löschung am Anfang, am Ende und in der Mitte benötigt wird, ist konstant. Einfügen und Spleißen zwischen verknüpften Listen ungültig machen, die Iteration in den Elementen nicht ungültig machen. Die Entfernung nur ungültig für die Iteration. Sie sind nicht synchronisiert, sodass sie nicht zufällig zugänglich sind. Die Reihenfolge von Iterationen kann sich je nach dem Benutzer ändern, wirkt sich jedoch nicht auf Änderungen der Elemente aus. Sie sind schneller als Vektoren und ideal zum Einfügen und Löschen zu Beginn, der Mitte und dem Ende der Elementlisten.
Beispiel:
#enthalten
// Definition der Klassen-Template-Listenplatte listen
… .
int main ()
Int Array [4] = 2, 6, 4, 8;
std :: Listwerte;
std :: Listen Sie andere Values auf;
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 kein Thread sicher, während ein Vektor Thread sicher ist.
5. Listen, da sie nur für Zugabe und Löschung vorne und hinten gelten, sind schneller, während
Vektoren nehmen mehr CPU.
6. Ein Vektor wächst zweimal um seine Größe, während eine Liste auf die Hälfte abnimmt, ich.e., 50 Prozent.