Vector at Listahan

Anonim

Vector vs List

Kadalasan nakakalito sa mga programmer, vectors at mga listahan ang mga pagkakasunud-sunod na ginamit sa array holdings sa C + + at Java. Ang dalawang termino ay nagtataglay ng mga address ng array ngunit may iba't ibang mga pamamaraan ng mga humahawak ng arrays. Ang pangunahing bagay na dapat nating malaman ay ang isang array ay isang "listahan" na mayroong ilan o lahat ng data, i.e., integers, lumulutang na mga puntos, o mga character at tinukoy sa mga braket na "[]." Sa totoo lang, kumilos ang mga vectors at listahan alinsunod sa mga pagkakataon. Kaya tingnan natin ang dalawang terminong ito nang isa-isa.

Vectors Ang mga vector ay ginagamit sa array holding at mga element access. Dito maaari mong ma-access ang anumang elementong random gamit ang "[]" operator. Kaya madaling maging hitsura sa lahat ng mga elemento o isang partikular na elemento na may operasyon ng vector. Kaya kung ipasok mo ang anumang bagay sa dulo, sa simula, o sa gitna, pagkatapos ay may mga vectors na plus point dahil maaari mong ma-access ang random na address at gumawa ng mga pagbabago doon. Gayunpaman, ang mga vectors ay medyo mabagal kumpara sa listahan ng mga bagay. Ang mga vector ay isinasaalang-alang bilang mga bagay na naka-synchronize, mahusay sa random na pag-access, at maayos nilang pinanatili ang data na may naka-sync na listahan. Ang isang vector ay pinili kapag hindi na kailangang magsingit o magtanggal sa gitna (listahan) o mula sa harap. Ang bilang ng mga elemento sa isang array ay maaaring mag-iba nang kapansin-pansing. Halimbawa: vector V; V.insert (V.begin (), 3); igiit (V.size () == 1 && V.capacity ()> = 1 && V [0] == 3);

Listahan Ang mga listahan ay "double linked sequences" na sumusuporta sa parehong pasulong at pabalik na traversal. Ang oras na kinuha sa pagpapasok at pag-alis sa simula, pagtatapos, at sa gitna ay pare-pareho. Ang pagpapasok at pag-splic sa pagitan ng mga naka-link na listahan ay hindi nagpawalang-bisa sa anumang pag-ulit sa mga elemento. Ang pag-alis lamang ay nagpawalang-bisa sa pag-ulit. Ang mga ito ay hindi naka-synchronize upang hindi sila mapupuntahan nang random. Ang pag-order ng mga pag-ulit ay maaaring magbago ayon sa gumagamit, ngunit hindi ito nakakaapekto sa anumang mga pagbabago sa mga elemento. Mas mabilis ito kaysa sa mga vectors at perpekto para sa pagpasok at pag-alis sa simula, gitna, at dulo ng mga listahan ng elemento.

Halimbawa: # isama / / listahan klase-template kahulugan …. int main () { int array [4] = {2, 6, 4, 8}; std:: list <int> values; std:: list <int> otherValues;

Buod: 1. Ang isang listahan ay hindi naka-synchronize habang ang isang vector ay. 2. Ang mga listahan ay walang default na laki habang ang isang vector ay may default na laki ng 10. 3. Mga Listahan at vectors ay parehong dynamic na lumalagong arrays. 4. Ang isang listahan ay hindi ligtas sa thread samantalang ang isang vector ay thread ligtas. 5. Mga listahan, tulad ng nalalapat lamang nila sa karagdagan at pag-alis sa harap at likuran, ay mas mabilis habang Ang mga vectors ay kumukuha ng higit pang CPU. 6. Ang isang vector ay lumalaki sa laki nito ng dalawang beses habang ang listahan ay bumababa sa kalahati, ibig sabihin, 50 porsiyento.