Különbség a vektor és a lista között A különbség a

Anonim

Vektor vs lista

A programozók, vektorok és listák gyakran összetévesztik egymást a C ++ és a Java rendszer tömbtartományaiban. A két kifejezés megtartja a tömbcímeket, de a tömbök tárolására szolgáló különböző módszerekkel.

Az alapvető dolog, amit tudnunk kell, hogy egy tömb olyan "lista", amely az adatok egy részét vagy egészét tartalmazza, i. e., egész számokat, lebegőpontokat vagy karaktereket, és zárójelben van megadva "[]. "

Valójában a vektorok és a listák a példák szerint járnak el. Vessünk egy pillantást a két kifejezésre egyenként.

Vektorok

A vektorokat a tömbtartásban és az elérni kívánt elemekben használják. Itt bármelyik elemet véletlenszerűen elérheti a "[]" operátor használatával. Így könnyű áttekinteni az összes elemet vagy egy konkrét elemet vektoros művelettel. Tehát ha bármelyik objektumot beilleszti a végén, az elején vagy a közepén, akkor a vektoroknak van egy plusz pontjuk, mert elérheti a véletlen címeket, és ott változtathat. Azonban a vektorok egy kicsit lassúak a listatárgyakhoz képest. A vektorokat szinkronizált objektumoknak tekintik, hatékonyan véletlenszerű hozzáféréssel, és megfelelően tárolják az adatokat szinkronizált listával. A vektort akkor veszi fel, amikor a

középső (listában) vagy elölről nincs szükség beillesztésre vagy törlésre.

A tömb elemeinek száma drámaian változhat.

Példa:

V vektor;

V. beillesztés (V kezdet (), 3);

assert (V méret () == 1 && V. kapacitás ()> = 1 && V [0] == 3);

Listák

A listák "kettős összekapcsolt szekvenciák", amelyek támogatják mind az előre, mind pedig az elhaladást. A beillesztés és a törlés ideje az elején, a végén és a közepén állandó. Az összekapcsolt listák közötti beillesztés és összekapcsolás nem semmisít meg semmilyen iterációt az elemekben. Csak az eltávolítás érvényteleníti az iterációt. Nem szinkronizáltak, így nem érhetők el véletlenszerűen. Az iterációk megrendelése a felhasználó szerint változhat, de nem befolyásolja az elemek változásait. Gyorsabbak, mint a vektorok, és ideálisak az elemlisták elejére, közepére és végére történő beillesztésre és törlésre.

Példa:

#include

// list class-template definition

….

int main ()

{

int array [4] = {2, 6, 4, 8};

std:: lista értékek;

std:: list otherValues;

Összefoglaló:

1. A lista nem szinkronizálva van egy vektor mellett.

2. A listáknak nincs alapértelmezett mérete, míg a vektor alapértelmezett mérete 10.

3. A listák és a vektorok dinamikusan növekvő tömbök.

4. A lista nem szálbiztos, míg egy vektor szál biztonságos.

5. A listák, mivel csak az elülső és a hátsó részek hozzáadására és törlésére vonatkoznak, gyorsabbak, míg a

vektorok több CPU-t vesznek fel.

6. A vektor méretének kétszer nő, míg a lista félig, azaz i.e., 50 százalék.