Vektorius ir sąrašas
Dažnai klaidinantys programuotojai, vektoriai ir sąrašai yra sekos, naudojamos masyvo laikmenose C ++ ir Java. Šie du terminai laiko masyvo adresus, tačiau skirtingais masyvų laikymo būdais.
Pagrindinis dalykas, kurį turime žinoti, yra tai, kad masyvas yra „sąrašas“, kuriame yra visi arba visi duomenys, t. Y. Sveikieji skaičiai, slankiojo kablelio skaičiai arba simboliai, ir kuris yra apibrėžtas skliaustuose „[]“.
Tiesą sakant, vektoriai ir sąrašai veikia pagal atvejus. Taigi, pažvelkime į šiuos du terminus po vieną.
Vektoriai
Vektoriai naudojami masyvo laikymui ir elementams pasiekti. Čia galite atsitiktinai pasiekti bet kurį elementą naudodami „[]“ operatorių. Taigi naudojant vektorinę operaciją tampa lengva žiūrėti per visus elementus arba vieną konkretų elementą. Taigi, jei įterpiate kokį nors objektą pabaigoje, pradžioje arba viduryje, vektoriai turi pliusą, nes jūs galite pasiekti atsitiktinį adresą ir ten atlikti pakeitimus. Tačiau vektoriai yra šiek tiek lėti, palyginti su sąrašo objektais. Vektoriai yra laikomi sinchronizuotais objektais, efektyviai veikiantys atsitiktine prieiga, ir jie tinkamai laiko duomenis sinchronizuotame sąraše. Vektorius pasirenkamas visada, kai nereikia jo įterpti ar ištrinti
vidurys (sąrašas) arba iš priekio.
Masyvo elementų skaičius gali labai skirtis.
Pavyzdys:
vektorius V;
V. įterpimas (V. Beginas (), 3);
teigti (V. dydis () == 1 && V. talpa ()> = 1 && V [0] == 3);
Sąrašai
Sąrašai yra „dvigubai sujungtos sekos“, palaikančios judėjimą pirmyn ir atgal. Laikas, kurį reikia įterpti ir ištrinti pradžioje, pabaigoje ir viduryje, yra pastovus. Įterpimas ir sujungimas tarp susietų sąrašų nepaneigia jokios iteracijos elementuose. Tik pašalinimas panaikina iteraciją. Jie nėra sinchronizuoti, todėl nėra prieinami atsitiktine tvarka. Pakartojimų tvarka gali keistis atsižvelgiant į vartotoją, tačiau tai nedaro įtakos jokiems elementų pokyčiams. Jie yra greitesni nei vektoriai ir idealiai tinka įterpti ir ištrinti elementų sąrašų pradžioje, viduryje ir pabaigoje.
Pavyzdys:
# įtraukti
// sąrašo klasės šablono apibrėžimas
… .
int pagrindinis ()
vidinis masyvas [4] = 2, 6, 4, 8;
std :: sąrašo reikšmės;
std :: išvardyti kitas vertes;
Santrauka:
1. Kol vektorius yra, sąrašas nėra sinchronizuojamas.
2. Sąrašai neturi numatytojo dydžio, tuo tarpu vektoriaus numatytasis dydis yra 10.
3. Sąrašai ir vektoriai yra dinamiškai augančios masyvai.
4. Sąraše nėra saugaus sriegio, tuo tarpu vektorius yra saugaus sriegio.
5. Sąrašai, nes jie taikomi tik pridedant ir ištrinant priekyje ir gale, tuo metu yra greitesni
vektoriai užima daugiau procesoriaus.
6. Vektorius išauga pagal dydį du kartus, o sąrašas sumažėja iki pusės, t. Y. 50 procentų.