Skillnad mellan vektor och lista

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, dvs heltal, flytpunkter eller tecken och definieras i parentes "[]."
Egentligen fungerar vektorer och listor enligt fallen. 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 framifrån.
Antalet element i en array kan variera dramatiskt.
Exempel:
vektor V;
V.insert (V.begin (), 3);
assert (V.size () == 1 && V.capacity ()> = 1 && V [0] == 3);

listor
Listor är "dubbelbundna sekvenser" som stöder både framåt och bakåtgående traversal. 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:
#inkludera
// lista klassmall definition
... .
int huvud ()

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, dvs 50 procent.