Ero vektorin ja luettelon välillä

Vektori vs. luettelo

Usein sekoittaen ohjelmoijiin, vektorit ja luettelot ovat sekvenssejä, joita käytetään ryhmien pitämissä C ++: ssa ja Javassa. Nämä kaksi termiä pitävät taulukon osoitteet, mutta eri menetelmillä pitävät taulukot.
Perusasia, joka meidän on tiedettävä, on, että taulukko on ”luettelo”, joka sisältää osan tai kaikki tiedot, ts. Kokonaisluvut, liukuluku tai merkit ja joka on määritelty hakasuluissa “[]”.
Oikeastaan ​​vektorit ja luettelot toimivat tapausten mukaan. Katsotaanpa näitä kahta termiä yksi kerrallaan.

vektorit
Vektoreita käytetään ryhmän pitämiseen ja elementtien käyttämiseen. Täällä voit käyttää mitä tahansa elementtiä satunnaisesti “[]” -operaattorilla. Joten on helppoa tarkastella kaikkia elementtejä tai yhtä tiettyä elementtiä vektoritoiminnolla. Joten jos lisäät jonkin objektin loppuun, alkuun tai keskelle, vektoreilla on pluspiste, koska voit käyttää satunnaista osoitetta ja tehdä muutoksia siihen. Vektorit ovat kuitenkin hieman hitaita luetteloobjekteihin verrattuna. Vektorien katsotaan olevan synkronoituja objekteja, tehokkaita satunnaisessa pääsyssä, ja ne pitävät tietoja synkronoidun luettelon kanssa oikein. Vektori valitaan aina, kun sitä ei tarvitse lisätä tai poistaa
keskeltä (lista) tai edestä.
Elementtien lukumäärä taulukossa voi vaihdella dramaattisesti.
Esimerkki:
vektori V;
V.lisäosa (V.begin (), 3);
väittä (V.koko () == 1 && V.kapasiteetti ()> = 1 && V [0] == 3);

Listat
Listat ovat ”kaksinkertaisesti linkitettyjä sekvenssejä”, jotka tukevat sekä eteen- että taaksepäin liikkumista. Lisäykseen ja poistoon alussa, lopussa ja keskellä kulunut aika on vakio. Lisäys ja liittäminen linkitettyjen luetteloiden välillä eivät mitätöi elementtien iteraatiota. Vain poistaminen toistaa iteraation. Niitä ei synkronoida, joten niihin ei pääse pääsyä satunnaisesti. Toistojen järjestys voi vaihdella käyttäjän mukaan, mutta se ei vaikuta elementtien muutoksiin. Ne ovat nopeampia kuin vektorit ja ovat ihanteellisia lisäykseen ja poistamiseen elementtiluetteloiden alussa, keskellä ja lopussa.

Esimerkki:
#sisältää
// luettelo luokkamalli määritelmä
... .
int main ()

int-ryhmä [4] = 2, 6, 4, 8;
std :: luetteloarvot;
std :: luettele muut arvot;

Yhteenveto:
1. Listaa ei synkronoida vektorin ollessa.
2. Listat eivät ole oletuskokoa, kun taas vektorin oletuskoko on 10.
3. Listat ja vektorit ovat molemmat dynaamisesti kasvavia taulukkoja.
4. Lista ei ole säiettä turvallinen, kun taas vektori on säiettä turvallinen.
5. Listat ovat nopeampia, koska ne koskevat vain lisäämistä ja poistamista edestä ja takaa
vektorit vievät enemmän CPU: ta.
6. Vektori kasvaa koonsa mukaan kahdesti, kun taas luettelo pienenee puoleen, ts. 50 prosenttiin.