Vector versus lijst
Vaak verwarrend voor de programmeurs, vectoren en lijsten zijn reeksen die worden gebruikt in array-holdings 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 die enkele of alle gegevens, d.w.z. gehele getallen, zwevende punten of tekens, bevat en tussen haakjes "[] is 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 het niet nodig is om in te voegen of te verwijderen in de
midden (lijst) of vanaf de voorkant.
Het aantal elementen in een array kan sterk variëren.
Voorbeeld:
vector V;
V.insert (V.begin (), 3);
assert (V.size () == 1 && V.capacity ()> = 1 && V [0] == 3);
lijsten
Lijsten zijn "dubbel gekoppelde sequenties" die zowel voorwaartse als achterwaartse traversal 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
// list class-template definition
... .
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 niet thread safe, terwijl een vector thread safe is.
5. Lijsten, omdat ze alleen van toepassing zijn op optellen en verwijderen aan de voor- en achterzijde, zijn sneller terwijl
vectoren nemen meer CPU in beslag.
6. Een vector groeit tweemaal zo groot als deze, terwijl een lijst afneemt tot de helft, d.w.z. 50%.