Forskellen mellem C ++ Vector vs Array

Vektorer er sekvensbeholdere, der bruger kontinuerlige lagerpladser til at gemme elementer. De kan administrere lagring og vokse dynamisk på en effektiv måde. Disse evner kommer til en pris: vektorer forbruger mere hukommelse i bytte for evnen til at håndtere opbevaring og vokse dynamisk i størrelse.

vektor v; hvor v er variablen af ​​typen Vector store heltalelementer. Dette er kendt som initialisering af vektor:

Gem tilfældigt heltal med funktionen “push_back”:

v.push_back (11);

v.push_back (12);

v.push_back (13);

v.push_back (14);

Brug af funktionen "pop_back ()" til at fjerne det sidste element:

v.pop_back ();

For at fjerne det første element kan vi bruge funktion slette ():

v.erase (v.begin ());

Første elementadgang med funktionsfront ();

v.front ();

Sidste elementadgang med funktion tilbage ();

v.back ();

En matrix gemmer en sekvenssamling af fast størrelse med elementer af samme type. Det bruges til at gemme en samling af data, men matrixen kan betragtes som en samling af variabler af samme type, der er gemt på sammenhængende hukommelsessteder. Alle matriser består af sammenhængende hukommelsesplaceringer, hvor den laveste adresse svarer til det første element og den højeste adresse til det sidste element.

Angiv en matrix i C ++:

type array_name (array_size); // Type bruges til at specificere type elementer i matrix

Initialisering af en matrix:

dobbeltværdier (5) = (23, 7, 32, 1, 66, 7, 11, 1, 44, 6);

C ++ har multidimensionel matrix:

Skriv navn (størrelse1) (størrelse2)… .. (størrelseN);

Initialisering af todimensionel matrix:

int a (3) (4) = ((0, 1, 2), (4, 5, 6, 7), (8, 9, 10, 11));

At videregive en markør til en matrix ved at angive array-navn uden indeks:

void dummyFunction (int * param) (

)

Med indeks:

void dummyFunction (int param ()) (

)

Sammenligning mellem hovedet og hovedet mellem C ++ Vector vs Array (Infographics)

Nedenfor er Top 8-forskellen mellem vektor og matrix i c ++

Nøgleforskel mellem C ++ Vector vs Array

Begge C ++ Vector vs Array er populære valg på markedet; lad os diskutere nogle af de største forskelle mellem vektor og matrix i c ++:

  1. Vektor er sekventielle containere, hvorimod Array er en datastruktur på lavere niveau.
  2. Vektor afsendes i form af en skabelonklasse i C ++ med en forælder som samlingsklasse, hvorimod Array er datastrukturen på lavere niveau med deres egne specifikke egenskaber.
  3. Vektor er ikke indeksbaseret og har funktioner og konstruktører, mens Arrays er indeksbaserede datastrukturer med den laveste adresse tilvejebringes til det første element, og den højeste adresse leveres til det sidste element i arrayen.
  4. Vektor er dynamisk i naturen, dvs. deres størrelse øges automatisk med mere elementindsættelse, hvorimod Arrays er struktur med fast størrelse, når først initialiseret ikke kan nulstilles.
  5. Vektor er bedre til hyppig indsættelse og sletning, mens Arrays er meget bedre egnet til hyppig adgang til elementer-scenarie.
  6. Vector optager meget mere hukommelse i bytte for evnen til at styre lagring og vokse dynamisk, mens Arrays er hukommelseseffektiv datastruktur.
  7. Vektor stammer fra Samling, der indeholder mere generisk datatype, mens Array er fast og gemmer mere stærk datatype.
  8. Vector lagrer elementer i en sammenhængende hukommelsesplacering og muliggør direkte adgang til et element ved hjælp af subscript-operator, mens Array indeholder elementerne med deres hukommelsesplacering, som er sammenhængende.
  9. Vector tager mere tid på at få adgang til elementerne, mens sammenhængende egenskab ved Array gør dem yderst effektive til at få adgang til elementerne.
  10. Generisk med vektorgrafning, det er dybest set en typesikker version, hvorimod Arrays med sin typesikre, yderst effektive med hensyn til hastighed og ydelse understøtter flere dimensioner.

C ++ Vector vs Array-sammenligningstabel

Nedenfor er den øverste sammenligning mellem C ++ Vector vs Array

Grundlaget for sammenligning mellem C ++ Vector vs ArrayVectorArray
SkabelseSekventiel beholder til opbevaring af elementerOriginal datastruktur baseret på indekskoncept
HukommelseBesæt mere hukommelse end ArrayHukommelse-effektive
LængdeLængde variererFast størrelse længde
AnvendelseHyppig indsættelse og sletningHyppig elementadgang
ResizeÆndre størrelse på størrelse er dynamiskÆndring af størrelse på arrays er dyrt
StrukturSkabelonklasse, kun C ++Sammenhængende hukommelsesplacering
IndekseringIkke-indeksbaseret strukturIndeks baseret på den laveste adresse som første og højeste adresse som sidst
AdgangAdgangselement er tidskrævende, selvom det er baseret på en position af elementetAdgangselement er konstant tidsdrift uanset elementets placering

Konklusion - C ++ Vector vs Array

Begge C ++ Vector vs Array er forskellige typer, der har forskellige muligheder og gemmer deres data på separate måder. Denne lagringsfunktioner og design af både C ++ Vector vs Array-datastrukturer gør dem unikke på deres egne måder. En array er fast i størrelse, og når den først er tildelt, kan man ikke tilføje eller fjerne elementer fra den, også alle elementer skal være af samme type. Det er således typesikker og mest effektiv lineær datastruktur med hensyn til hastighed og ydelse. Array understøtter også flere dimensioner. Vektor er en skabelonklasse og kun C ++ konstruerer. I modsætning til Array, de er dynamiske i naturen, kan de ændre størrelsen automatisk med hyppig indsættelse og sletning af elementer. Det er i det væsentlige en skabelonklasse, der indeholder pegepunkter ind i bunken, så når der altid kaldes std: vektor, vil "nyt" altid kaldes. Vektorelementer er garanteret at være sammenhængende, men på samme tid er de langsommere for adgang på grund af markørbaseret tilgang. Man skal først have adgang til en markør for at få deres praktiske data.

C ++ Vector vs Array er en lineær datastruktur, der er velegnet til forskellige scenarier. Hvis der ofte forekommer indsættelse og sletning, og på samme tid, hukommelse ikke er en begrænsning, er Vector et ideelt valg, mens i scenarier som hyppig adgang til elementer, der kræves med en hukommelsesbegrænsning, er Array en bedre mulighed. Det hele afhænger af brugssag og krav. En matrix er altid en liste i naturen, men en vektor er skabelonklasse og det samme som en dynamisk matrix. Arrayet tillader begge typer adgang, direkte og sekventiel, mens Vector kun tillader sekventiel adgang. Og det skyldes, hvordan disse datastrukturer gemmes i hukommelsen. Da vektorelementer er placeret i en sammenhængende hukommelsesblok, kan de let gennemgås ved hjælp af en iterator.

Der er flere funktioner tilgængelige i C ++ med Vector som en skabelonklasse, alle funktioner leverer en slags funktionalitet omkring Vector dvs. begynder (), slut (), rbegin (), rend (), cbegin (), cend (), crbegin (), crend ​​(), størrelse (), max_ størrelse (), kapacitet (), størrelse (), tom (), reverse () og shrink_to_fit (). En Array er meget bundet til hardwarebegrebet kontinuerlig, sammenhængende hukommelse, hvor hvert element er identisk i størrelse. Begge C ++ Vector vs Array-ideer stemmer ganske godt sammen, baseret på scenarier. I slutningen af ​​dagen koger det hele sammen med kravet. En udvikler skal afveje projektkravet og dermed træffe enhver beslutning.

Anbefalet artikel

Dette har været en guide til de største forskelle mellem C ++ Vector vs Array. Her diskuterer vi også C ++ Vector vs Array nøgleforskelle med infografik og sammenligningstabel. Du kan også se på de følgende C ++ Vector vs Array-artikler for at lære mere -

  1. C ++ reference vs markør
  2. C # Array vs Liste
  3. C vs C ++ Ydeevne
  4. Java-liste vs array-liste
  5. Kræv vs import: Hvad er fordelene
  6. C vs C #: Hvad er funktionerne

Kategori: