Verschil tussen vector en lijst Verschil tussen

Anonim

Vector versus lijst

Vaak verwarrend voor de programmeurs, vectoren en lijsten zijn reeksen die worden gebruikt in matrixposities in C ++ en Java. De twee termen bevatten array-adressen maar met verschillende methoden om arrays vast te houden.

Het belangrijkste dat we moeten weten, is dat een array een "lijst" is met een aantal of alle gegevens, i. e., gehele getallen, zwevende of tekens en wordt tussen haakjes gedefinieerd "[]. "

Eigenlijk werken vectoren en lijsten volgens de instanties. Laten we deze twee termen één voor één bekijken.

Vectoren

Vectoren worden gebruikt bij het vasthouden van arrays en het openen van elementen. Hier kunt u willekeurig willekeurig welk element openen met behulp van de operator "[]". Het wordt dus gemakkelijk om door alle elementen of één specifiek element te kijken met een vectorbewerking. Dus als u een object aan het einde invoegt, in het begin of in het midden, dan hebben vectoren een pluspunt omdat u toegang hebt tot het willekeurige adres en daar wijzigingen kunt aanbrengen. Vectoren zijn echter een beetje traag in vergelijking met lijstobjecten. Vectoren worden beschouwd als gesynchroniseerde objecten, efficiënt bij willekeurige toegang en ze houden de gegevens juist vast met een gesynchroniseerde lijst. Er wordt een vector geselecteerd wanneer er geen invoeging of verwijdering in de

midden (lijst) of vanaf de voorkant hoeft plaats te vinden.

Het aantal elementen in een array kan sterk variëren.

Voorbeeld:

vector V;

V. invoegen (V. begin (), 3);

assert (v. Size () == 1 && V. capacity ()> = 1 && V [0] == 3);

Lijsten

Lijsten zijn "dubbel gekoppelde reeksen" die zowel voorwaarts als achterwaarts traversaal ondersteunen. De tijd die nodig is voor het invoegen en verwijderen in het begin, einde en in het midden is constant. Het invoegen en splitsen tussen gekoppelde lijsten maakt elke iteratie in de elementen niet ongeldig. Alleen verwijdering maakt de iteratie ongeldig. Ze zijn niet gesynchroniseerd, dus ze zijn niet willekeurig toegankelijk. De volgorde van iteraties kan volgens gebruiker veranderen, maar heeft geen invloed op wijzigingen in de elementen. Ze zijn sneller dan vectoren en zijn ideaal voor invoegen en verwijderen in het begin, midden en einde van de elementenlijsten.

Voorbeeld:

# include

// definitie van lijstsjabloon

….

int main ()

{

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

std:: lijstwaarden;

std:: lijst otherValues;

Samenvatting:

1. Een lijst is niet gesynchroniseerd terwijl een vector is.

2. Lijsten hebben geen standaardgrootte terwijl een vector een standaardgrootte van 10 heeft.

3. Lijsten en vectoren zijn beide dynamisch groeiende matrices.

4. Een lijst is geen thread safe terwijl een vector thread safe is.

5. Lijsten, die alleen van toepassing zijn op optellen en verwijderen aan de voor- en achterzijde, zijn sneller, terwijl

-vectoren meer CPU nodig hebben.

6. Een vector groeit tweemaal zo groot als deze, terwijl een lijst afneemt tot de helft, i.e., 50 procent.