Liste vs vektor C ++ sammenlignet

Liste vs vektor C ++ sammenlignet
Liste og vektorer er begge inkludert i kategorien datastrukturer.

Liste i c++

En liste er en sekvens som støtter gjennomgang i både fremover og bakover, og den er kjent for å være en dobbeltkoblet sekvensert liste. Vi kan sette inn slette elementer i alle posisjoner, i starten, ende og i midten også.

Liste X;
x.insert_begin (7);
x.delete_end ();

Tidsforbruk, kjent gjennom kompleksiteten, er det samme for innsetting og sletting når som helst på listen. Listen brukes til å lagre elementene i den og adressen deres med den. Disse adressene pekes gjennom pekerne. Disse pekerne hjelper deg med å få tilgang til verdien i neste eller tidligere posisjoner for traversal i bakover og fremover retning. Minnet i listen ligger dynamisk hver gang vi legger til et nytt element på listen.

Hvorfor skal vi bruke en liste?

Listedatastrukturen viser en bedre ytelse mens du setter inn data, sletter eller beveger elementer fra et punkt til et annet. Det er også bra å bruke algoritmer som utfører operasjoner effektivt.

Syntaks

Liste < class Type, class Alloc =allocator > Klasseliste;

T: representerer datatypen av elementer. Vi kan bruke hvilken som helst datatype. Alloc: Den beskriver objektet til allokatoren. En tildelingsklasse brukes. Det avhenger av verdien og bruker en enkel måte å tildele minne.

Arbeid av C ++ -liste

Liste fungerer på en slik måte at vi først må legge til et listebibliotek for å operere med alle funksjonene det gir effektivt i programmet vårt. Inne i programmet er en liste erklært som vi har beskrevet i syntaks. Metoden er ganske enkel. Datatypen av elementer er definert med navnet på listen. Ved hjelp av en oppdragsoperatør setter vi inn heltallverdiene i listen. Alle elementene vises ved å bruke en for loop, da vi trenger å vise hvert element som er til stede i hver indeks.

Vektor i c++

Vektor er en dynamisk rekke som automatisk kan endre størrelse på seg når noe element blir lagt til eller slettet fra det. Elementene som er satt inn i vektorer er plassert i sammenhengende lagring, slik at de lett får tilgang til ved hjelp av iteratorer. Elementer settes inn fra baksiden av vektoren.

vektor x;
x.sett inn (7);
x.slett ();

Innføring av data på slutten tar en differensialtid. Mens elementene fjernes fra vektorene ved å bruke en konstant tid.

Hvorfor skal vi bruke vektorer?

Vi foretrekker å bruke en vektorbeholder i C ++ -programmet når vi ikke trenger å nevne størrelsen på data før vi starter programmet. Ved å bruke vektorer trenger vi ikke å angi maksimal størrelse på beholderen.

Syntaks

vektor Vector_name (elementer);

Syntaksen startes ved å bruke et vektor nøkkelord. En datatype er en type elementer/elementer som skal settes inn i vektorene. 'Navn' viser navnet på en vektor eller dataelementet. 'Elementene' representerer antall elementer som er satt inn. Dette er en valgfri parameter.

Arbeid av C ++ vektorer

I hovedprogrammet, som beskrevet av syntaks, erklærer vi vektorbeholderen ved å oppgi datatypen på elementene og navnet på en vektor. Etter å ha lagt inn vektorens verdier, vil vi vise alle elementene ved å bruke en for loop. En iterator vil bidra til å iterere gjennom hele loopen. På denne måten fungerer en vektor på programmeringsspråket C ++.

Forskjeller mellom lister og vektorer i C++

Sletting og innsetting

Både innsetting og sletting av elementer på listen er veldig effektive sammenlignet med vektorene. Dette er fordi mens innsetting av data i starten, ende eller midt på listen krever en eller to tips som skal byttes ut.

På den annen side, i vektorer, vil innsetting og slettingsprosedyre gjøre alle elementene til å bli forskjøvet med en. Dessuten, hvis minnet ikke er tilstrekkelig, tildeles mer minne, og hele data overføres dit.

Så både innsetting og sletting i lister er mer effektive og effektive enn vektorer.

Tilfeldig tilgang

I lister er det vanskelig for tilfeldig tilgang som det sies å være at inne i listene er en dobbeltbundet liste til stede. Så hvis du vil få tilgang til det sjette elementet, må du først iterere de første 5 elementene på listen.

Og når det gjelder vektorer, lagres alle elementer på sammenhengende minneplasser for å utføre tilfeldig tilgang i vektorer.

Bruk av pekere

Vi må bruke pekere på listen for å lagre adressen. Så ifølge ekspertprogrammererne er det veldig logisk mens de arbeider med pekerne i lister. Å jobbe med lister anses som vanskelig sammenlignet med vektorer fordi vektorer bruker normale operasjoner som matriser.

Her er en tabellpresentasjon av noen store forskjeller mellom lister og vektorer.

Vektor i c++ Liste i c++
Minnet som brukes er sammenhengende. Den bruker et ikke-sammenhengende minne.
Den har en standardstørrelse. Det er ingen standardstørrelse for lister.
I vektorer tildeles plass til dataene som er til stede i det. Ekstra plass kreves i lister for dataene og for nodene å lagre adresser i den.
Å sette inn elementer på slutten bruker konstant tid når som helst i vektoren; det er 0. Slettingsprosessen på listen er veldig billig fra et hvilket som helst punkt.
Tilfeldig tilgang er lett mulig. Det er umulig å søke om tilfeldig tilgang på listen.

Implementering av listen

I dette eksemplet har vi brukt operasjoner som å vise dataene i listen, omvendt og sorteringsfunksjonene. Dessuten brukes også begynnende () og slutt () funksjoner.

Displayfunksjonen er deklarert separat. Dette bruker start () og slutten () for å krysse gjennom hele listen og vise alle elementene ved hjelp av objektet. Vi opprettet to lister her. Begge listene er lagt inn i elementer gjennom fronten og baken også. Data vil bli lagt inn fra begge retninger.

Etter det vil vi kalle skjermfunksjonen for å se alt innholdet. Og bruk også de innebygde funksjonene som omvendt og sorterer.

Produksjon:

Implementering av vektor

Dette eksemplet inkluderer vektorskaping. En enkelt vektor opprettes, men vi oppgir 5 verdier ved å bruke en "for" -sløyfe.

Etter å ha lagt inn data, vil vi vise størrelsen på vektoren som er opprettet av alle elementene i den. Etter det setter vi inn en ny verdi ved å bruke en "for" -sløyfe igjen. Men denne gangen har vi brukt Begin and End () -funksjoner. Vi kan se at verdien legges inn på slutten. Og størrelsen på vektoren oppdateres også i henhold til selve dataene.

Produksjon:

Konklusjon

'Liste vs vektor C ++ sammenlignet' beskriver forskjellene mellom listen og vektoren. Til å begynne med har vi beskrevet listen og vektorene i detalj og jobbet med dem. Slik at det kan hjelpe brukeren med å skille mellom disse containerne. To eksempler implementeres i Ubuntu Linux -operativsystemet som verifiserer forskjellen i å erklære, sette inn og slette elementene fra containerne.