Skillnad mellan vektor och lista Skillnad mellan

Anonim

Vector vs List

Ofta förvirrande för programmerarna, vektorer och listor är sekvenser som används i arrayinnehåll i C ++ och Java. De två termerna innehåller arrayadresser men med olika metoder för att hålla arrays.

Det grundläggande vi behöver veta är att en matris är en "lista" som innehåller några eller alla data, jag. e., heltal, flytpunkter eller tecken och definieras i parentes "[]. "

Egentligen fungerar vektorer och listor enligt instanserna. Så låt oss titta på dessa två termer en efter en.

vektorer

vektorer används i arrayhållning och åtkomst till element. Här kan du komma åt något element slumpmässigt med hjälp av "[]" operatören. Så blir det lätt att titta igenom alla element eller ett specifikt element med en vektoroperation. Så om du sätter in något objekt i slutet, i början eller i mitten, så har vektorer en pluspunkt eftersom du kan komma åt den slumpmässiga adressen och göra ändringar där. Men vektorerna är lite långsamma jämfört med listobjekt. Vektorer betraktas som synkroniserade objekt, effektiva i slumpmässig åtkomst, och de lagrar dataen korrekt med en synkroniserad lista. En vektor plockas när det inte finns något behov av att infoga eller radera i

mitten (lista) eller från framsidan.

Antalet element i en array kan variera dramatiskt.

Exempel:

vektor V;

V. sätt in (V. start (), 3);

assert (V. storlek () == 1 && V. kapacitet ()> = 1 && V [0] == 3);

Listor

Listor är "dubbelbundna sekvenser" som stöder både framåt och bakåtgående travers. Tiden som tas i infogningen och raderingen i början, slutet och i mitten är konstant. Infogning och splitsning mellan länkade listor ogiltiggör inte någon iteration i elementen. Endast borttagning ogiltiggör iterationen. De är inte synkroniserade så att de inte är tillgängliga slumpmässigt. Beställningen av iterationer kan ändras enligt användaren, men det påverkar inte några förändringar i elementen. De är snabbare än vektorer och är idealiska för infogning och radering i början, mitten och slutet av elementlistorna.

Exempel:

#include

// lista klassmall definition

….

int main ()

{

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

std:: listvärden;

std:: lista otherValues;

Sammanfattning:

1. En lista synkroniseras inte medan en vektor är.

2. Listor har ingen standardstorlek medan en vektor har en standardstorlek på 10.

3. Listor och vektorer är både dynamiskt växande uppsättningar.

4. En lista är inte tråd säker medan en vektor är tråd säker.

5. Listor, som de bara gäller för tillägg och radering i fram och bak, är snabbare medan

vektorer tar mer CPU.

6. En vektor växer med sin storlek två gånger medan en lista minskar till hälften, i.e., 50 procent.