Atšķirība starp vektoru un sarakstu

Vektors vs saraksts

Bieži jauc programmētājus, vektori un saraksti ir sekvences, ko izmanto masīva turējumos C ++ un Java. Abi termini satur masīva adreses, bet ar atšķirīgām masīvu turēšanas metodēm.
Pamata lieta, kas mums jāzina, ir tāda, ka masīvs ir “saraksts”, kurā ir daļa vai visi dati, t.i., veseli skaitļi, peldošie punkti vai rakstzīmes, un tas ir noteikts iekavās “[]”.
Faktiski vektori un saraksti darbojas atbilstoši gadījumiem. Apskatīsim šos divus terminus pa vienam.

Vektori
Vektorus izmanto masīva turēšanai un piekļuvei elementiem. Šeit jūs varat nejauši piekļūt jebkuram elementam, izmantojot operatoru “[]”. Tātad ar vektoru operāciju kļūst viegli aplūkot visus elementus vai vienu konkrētu elementu. Tātad, ja jūs ievietojat kādu objektu beigās, sākumā vai vidū, tad vektoriem ir plus punkts, jo jūs varat piekļūt izlases adresei un tur veikt izmaiņas. Tomēr vektori ir nedaudz lēni, salīdzinot ar saraksta objektiem. Vektorus uzskata par sinhronizētiem objektiem, efektīviem ar brīvpiekļuvi, un tie pareizi glabā datus ar sinhronizētu sarakstu. Vektors tiek izvēlēts ikreiz, kad nav nepieciešams to ievietot vai izdzēst
pa vidu (saraksts) vai no priekšpuses.
Elementu skaits masīvā var krasi atšķirties.
Piemērs:
V vektors;
V.insert (V.begins (), 3);
apstiprināt (V. lielums () == 1 && V. kapacitāte ()> = 1 && V [0] == 3);

Saraksti
Saraksti ir “divkārši saistīti secības”, kas atbalsta gan virzību uz priekšu, gan atpakaļ. Laiks, kas vajadzīgs ievietošanai un dzēšanai sākumā, beigās un vidū, ir nemainīgs. Ievietošana un salikšana starp saistītajiem sarakstiem nemaina iterāciju elementos. Tikai noņemšana anulē iterāciju. Tie nav sinhronizēti, tāpēc nav pieejami nejauši. Atkārtojumu secība atkarībā no lietotāja var mainīties, taču tas neietekmē izmaiņas elementos. Tie ir ātrāki par vektoriem un ir lieliski piemēroti ievietošanai un dzēšanai elementu sarakstu sākumā, vidū un beigās.

Piemērs:
# iekļaut
// saraksta klases veidnes definīcija
… .
int galvenais ()

int masīvs [4] = 2, 6, 4, 8;
std :: saraksta vērtības;
std :: citu vērtību saraksts;

Kopsavilkums:
1. Saraksts nav sinhronizēts, kamēr ir vektors.
2. Sarakstiem nav noklusējuma lieluma, savukārt vektora noklusējuma izmērs ir 10.
3. Gan saraksti, gan vektori ir dinamiski augoši masīvi.
4. Saraksts nav drošs pavedieniem, turpretim vektors ir drošs pavedieniem.
5. Saraksti, jo tie attiecas tikai uz pievienošanu un dzēšanu priekšā un aizmugurē, ir ātrāki
vektoriem nepieciešams vairāk CPU.
6. Vektors palielinās pēc tā lieluma divreiz, kamēr saraksts samazinās līdz pusei, t.i., 50 procentiem.