Rozdiel medzi vektorom a zoznamom

Vektor vs zoznam

Pre programátorov sú vektory a zoznamy často mätúce sekvencie používané v poliach v C ++ a Java. Dva výrazy obsahujú adresy polí, ale s rôznymi metódami uchovávania polí.
Základná vec, ktorú musíme vedieť, je, že pole je „zoznam“, ktorý obsahuje niektoré alebo všetky údaje, tj celé čísla, pohyblivé body alebo znaky a je definovaný v zátvorkách „[]“.
V skutočnosti vektory a zoznamy fungujú podľa týchto prípadov. Pozrime sa teda na tieto dva termíny jeden po druhom.

Vectors
Vektory sa používajú pri pridržiavaní polí a pri prístupe k prvkom. Tu môžete pristupovať k ľubovoľnému prvku náhodne pomocou operátora „[]“. Je teda ľahké prezerať všetky prvky alebo jeden konkrétny prvok pomocou vektorovej operácie. Takže ak vložíte akýkoľvek objekt na koniec, na začiatok alebo do stredu, vektory majú kladný bod, pretože máte prístup k náhodnej adrese a vykonávať tam zmeny. Vektory sú však v porovnaní so zoznamami trochu pomalšie. Vektory sa považujú za synchronizované objekty, efektívne pri náhodnom prístupe a správne uchovávajú údaje so synchronizovaným zoznamom. Vektor sa vyberie vždy, keď nie je potrebné vkladať alebo mazať
stred (zoznam) alebo spredu.
Počet prvkov v poli sa môže dramaticky líšiť.
Príklad:
vektor V;
V.insert (V.begin (), 3);
tvrdenie (V.size () == 1 && V.capacity ()> = 1 && V [0] == 3);

zoznamy
Zoznamy sú „dvojité prepojenia“, ktoré podporujú prechod dopredu aj dozadu. Čas potrebný na vloženie a vymazanie na začiatku, na konci a v strede je konštantný. Vkladanie a spájanie medzi prepojenými zoznamami neznamená neplatnosť iterácie prvkov. Len odstránenie zruší iteráciu. Nie sú synchronizované, takže nie sú prístupné náhodne. Poradie iterácií sa môže meniť podľa používateľa, nemá to však vplyv na žiadne zmeny prvkov. Sú rýchlejšie ako vektory a sú ideálne na vloženie a odstránenie na začiatku, v strede a na konci zoznamu prvkov.

Príklad:
#include
// list Definícia triedy-šablóny
... .
int main ()

int pole [4] = 2, 6, 4, 8;
std :: list value;
std :: list otherValues;

Zhrnutie:
1. Zoznam nie je synchronizovaný, kým je vektor.
2. Zoznamy nemajú predvolenú veľkosť, zatiaľ čo vektor má predvolenú veľkosť 10.
3. Zoznamy a vektory sú dynamicky rastúce polia.
4. Zoznam nie je bezpečný, zatiaľ čo vektor je bezpečný.
5. Zoznamy, ktoré sa vzťahujú iba na pridávanie a mazanie vpredu a vzadu, sú rýchlejšie
vektory zaberajú viac CPU.
6. Vektor rastie svojou veľkosťou dvakrát, zatiaľ čo zoznam klesá na polovicu, t. J. 50%.