Vektori ja luettelo

Anonim

Vektori vs. lista

Usein sekava ohjelmoijille, vektorit ja listat ovat sarjoja, joita käytetään taulukon tilojen C + + ja Java. Nämä kaksi termiä pitävät array-osoitteita, mutta erilaisia ​​tapoja pitää rivit. Tärkeintä on tietää, että taulukko on "luettelo", joka sisältää osan tai kaikki tietueen, eli kokonaislukuja, kelluvia pisteitä tai merkkejä ja on suluissa "[]." Itse asiassa vektorit ja listat toimivat tapausten mukaan. Katsotaanpa siis nämä kaksi termiä yksi kerrallaan.

vektorit Vektoreita käytetään array-tilassa ja elementtejä käyttävissä elementeissä. Täällä voit käyttää mitä tahansa elementtiä satunnaisesti käyttämällä "[]" -operaattoria. Joten on helppoa tarkastella kaikkia elementtejä tai tietyn elementin vektorioperaatiota. Joten jos asetat objektin loppuun, alkuun tai keskelle, niin vektorilla on plus-piste, koska voit käyttää satunnaista osoitetta ja tehdä siellä muutoksia. Kuitenkin vektorit ovat vähän hitaita verrattuna listaobjekteihin. Vektoreita pidetään synkronoituna kohteina, jotka ovat tehokkaita satunnaisessa käytössä, ja ne pitävät dataa synkronoidusti. Vektori valitaan aina, kun ei tarvitse lisätä tai poistaa keskellä (lista) tai edestä. Ryhmän elementtien määrä voi vaihdella dramaattisesti. Esimerkki: vektori V; V.insert (V.begin (), 3); väitä (V.size () == 1 && V.capacity ()> = 1 && V [0] == 3);

Listat Listat ovat "kaksinkertaisia ​​linkitettyjä sekvenssejä", jotka tukevat sekä eteen- että taaksepäin siirtymistä. Aika, joka on otettu ja poistettu alussa, lopussa ja keskellä, on vakio. Liittämisen ja linkittämisen linkitettyjen luetteloiden välillä ei mitätöi elementtien iterointia. Vain poisto mitätöi iteroinnin. Ne eivät ole synkronoituja, joten niitä ei ole saatavilla satunnaisesti. Iteraatioiden tilaaminen voi muuttua käyttäjän mukaan, mutta se ei vaikuta elementtien muutoksiin. Ne ovat nopeampia kuin vektorit ja sopivat ihanteellisesti elementtien listojen alkuun, keskelle ja loppuun.

Esimerkki: #sisältää // list class-template definition …. int main () { int array [4] = {2, 6, 4, 8}; std:: list <int> arvot; std:: list <int> muutValues;

Yhteenveto: 1. Luettelo ei ole synkronoitu vektorin ollessa. 2. Luettelossa ei ole oletuskokoa, kun vektorin oletuskoko on 10. 3. Luettelot ja vektorit ovat sekä dynaamisesti kasvavia ryhmiä. 4. Luettelo ei ole säikeinen, kun taas vektori on kierre turvallinen. 5. Luettelot, koska ne koskevat vain lisäystä ja poistoa edestä ja takaa, ovat nopeampia vektorit ottavat enemmän CPU: ta. 6. Vektori kasvaa kokoään kahdesti samalla, kun luettelo pienenee puoleen, eli 50 prosenttia.