Forskel mellem vektor og liste Forskel mellem

Anonim

Vector vs List

Ofte forvirrende for programmørerne, er vektorer og lister sekvenser, der anvendes i array holdninger i C ++ og Java. De to udtryk indeholder arrayadresser, men med forskellige metoder til at holde arrayer.

Det grundlæggende, vi skal vide, er, at et array er en "liste", som indeholder nogle eller alle dataene, jeg. e., heltal, flydende punkter eller tegn og er defineret i parentes "[]. "

Faktisk fungerer vektorer og lister i overensstemmelse med eksemplerne. Så lad os tage et kig på disse to udtryk en efter én.

Vektorer

Vektorer anvendes i array hold og elementer adgang. Her kan du få adgang til ethvert element tilfældigt ved hjælp af "[]" operatøren. Så det bliver let at gennemse alle elementerne eller et bestemt element med en vektoroperation. Så hvis du indsætter et objekt i slutningen, i begyndelsen eller i midten, så har vektorer et pluspunkt, fordi du kan få adgang til den tilfældige adresse og foretage ændringer der. Imidlertid er vektorer lidt langsommelige sammenlignet med listobjekter. Vektorer betragtes som synkroniserede objekter, der er effektive i tilfældig adgang, og de holder dataene korrekt sammen med en synkroniseret liste. En vektor vælges, når der ikke er behov for at indsætte eller slette i

midten (liste) eller fra forsiden.

Antallet af elementer i en array kan variere dramatisk.

Eksempel:

vektor V;

V. indsæt (V. start (), 3);

assert (V. Størrelse () == 1 && V. kapacitet ()> = 1 && V [0] == 3);

Lister

Lister er "dobbeltbundne sekvenser", der understøtter både fremadgående og bagudgående. Tiden i indsættelsen og sletningen i begyndelsen, slutningen og i midten er konstant. Indsættelse og splejsning mellem linkede lister invaliderer ikke nogen iteration i elementerne. Kun fjernelse invaliderer iterationen. De er ikke synkroniseret, så de ikke er tilfældigt tilgængelige. Bestilling 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:

#include

// liste klasseskabelon definition

….

int main ()

{

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

std:: listeværdier;

std:: list andreValues;

Sammendrag:

1. En liste synkroniseres ikke, mens en vektor er.

2. Listerne 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åd sikker, mens en vektor er tråd sikker.

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 halv, i.e., 50 procent.