Forskellen mellem vektor og liste

Vector vs liste

Ofte forvirrende for programmerere, vektorer og lister er sekvenser, der bruges i array-besiddelser i C ++ og Java. De to udtryk holder array-adresser, men med forskellige metoder til at holde arrays.
Den grundlæggende ting, vi har brug for, er, at en matrix er en "liste", der indeholder nogle eller alle data, dvs. heltal, flydende punkter eller tegn og er defineret i parentes "[]."
Faktisk handler vektorer og lister i henhold til tilfældene. Så lad os se på disse to udtryk én efter én.

Vektorer
Vektorer bruges i matrixholdning og adgang til elementer. Her kan du få adgang til ethvert element tilfældigt ved hjælp af "[]" operatoren. Så det bliver let at se gennem alle elementerne eller et specifikt element med en vektoroperation. Så hvis du indsætter et objekt i slutningen, i begyndelsen eller i midten, så har vektorer et pluspoint, fordi du kan få adgang til den tilfældige adresse og foretage ændringer der. Vektorer er dog lidt langsomme sammenlignet med listeobjekter. Vektorer betragtes som synkroniserede objekter, effektive i tilfældig adgang, og de rummer dataene korrekt med en synkroniseret liste. En vektor vælges, når der ikke er behov for at indsætte eller slette i
midt (liste) eller forfra.
Antallet af elementer i en matrix kan variere dramatisk.
Eksempel:
vektor V;
V.insert (V.begin (), 3);
hævde (V. størrelse () == 1 && V.capacity ()> = 1 && V [0] == 3);

Lister
Lister er "dobbeltbundne sekvenser", der understøtter både fremad og bagud. Den tid, der tages inden indsættelse og sletning i begyndelsen, slutningen og i midten, er konstant. Indsættelse og splejsning mellem linkede lister ugyldiggør ikke nogen iteration i elementerne. Kun fjernelse ugyldiggør iterationen. De er ikke synkroniseret, så de er ikke tilfældigt tilgængelige. Bestillingen af ​​iterationer kan ændres i henhold til brugeren, men det påvirker ikke ændringer i elementerne. De er hurtigere end vektorer og er ideelle til indsættelse og sletning i begyndelsen, midten og slutningen af ​​elementlisterne.

Eksempel:
#omfatte
// liste klasseskabelon-definition
... .
int main ()

int array [4] = 2, 6, 4, 8;
std :: liste værdier;
std :: liste andre værdier;

Resumé:
1. En liste synkroniseres ikke, mens en vektor er.
2. Lister har ingen standardstørrelse, mens en vektor har en standardstørrelse på 10.
3. Lister og vektorer er begge dynamisk voksende arrays.
4. En liste er ikke trådbeskyttet, mens en vektor er trådløs.
5. Lister, som de kun gælder for tilføjelse og sletning foran og bag, er hurtigere mens
vektorer tager mere CPU.
6. En vektor vokser med sin størrelse to gange, mens en liste falder til halvdelen, dvs. 50 procent.