Forskjellen mellom C ++ Vector vs Array

Vektorer er sekvensbeholdere som bruker kontinuerlige lagringssteder for å lagre elementer. De kan administrere lagring og vokse dynamisk på en effektiv måte. Disse evnene kommer til en pris: vektorer bruker mer minne i bytte for muligheten til å håndtere lagring og vokse dynamisk i størrelse.

vektor v; der v er variabelen av typen Vector store heltalelementer. Dette er kjent som initialisering av vektor:

Lagre tilfeldig heltall med funksjonen “push_back”:

v.push_back (11);

v.push_back (12);

v.push_back (13);

v.push_back (14);

Bruk funksjonen “pop_back ()” for å fjerne det siste elementet:

v.pop_back ();

For å fjerne det første elementet, kan vi bruke funksjonen slette ():

v.erase (v.begin ());

Første elementtilgang med funksjonsfronten ();

v.front ();

Siste elementtilgang med funksjon tilbake ();

v.back ();

En matrise lagrer en sekvensiell samling i faste størrelser med elementer av samme type. Den brukes til å lagre en samling av data, men matrisen kan betraktes som en samling av variabler av samme type som er lagret på sammenhengende minneplasser. Alle matriser består av sammenhengende minneplasser, med den laveste adressen tilsvarer det første elementet og den høyeste adressen til det siste elementet.

Angi en matrise i C ++:

skriv array_name (array_size); // Type brukes til å spesifisere type elementer i matrisen

Initierer en matrise:

doble verdier (5) = (23, 7, 32, 1, 66, 7, 11, 1, 44, 6);

C ++ har flerdimensjonalt utvalg:

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

Initierer todimensjonal matrise:

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

Overføre en peker til en matrise ved å spesifisere array-navn uten indeks:

void dummyFunction (int * param) (

)

Med indeks:

void dummyFunction (int param ()) (

)

Sammenligning av topp mot hode mellom C ++ Vector vs Array (Infographics)

Nedenfor er topp 8-forskjellen mellom vektor og matrise i c ++

Nøkkelforskjellen mellom C ++ Vector vs Array

Både C ++ Vector vs Array er populære valg i markedet; la oss diskutere noen av de viktigste forskjellene mellom vektor og matrise i c ++:

  1. Vektor er sekvensielle beholdere, mens Array er en datastruktur på lavere nivå.
  2. Vektor sendes i form av en malklasse i C ++ med en overordnet som samlingsklasse, mens Array er datastrukturen på lavere nivå med sine egne spesifikke egenskaper.
  3. Vektor er ikke indeksbasert og har funksjoner og konstruktører, mens Arrays er indeksbaserte datastrukturer med den laveste adressen blir gitt til det første elementet og den høyeste adressen blir gitt til det siste elementet i matrisen.
  4. Vektor er dynamisk i sin natur, dvs. størrelsen øker automatisk med mer elementinnsetting, mens Arrays har struktur med fast størrelse, når initialisert ikke kan tilbakestilles.
  5. Vektor er bedre for hyppig innsetting og sletting, mens Arrays er mye bedre egnet for hyppig tilgang til elementer.
  6. Vector opptar mye mer minne i bytte mot muligheten til å administrere lagring og vokse dynamisk mens Arrays er minneeffektiv datastruktur.
  7. Vektor er hentet fra Collection som inneholder mer generisk datatype, mens Array er fast og lagrer sterkere datatype.
  8. Vector lagrer elementer i en sammenhengende minneplassering og muliggjør direkte tilgang til et element ved bruk av abonnementsoperatør, mens Array inneholder elementene med minnelokasjonen som har sammenhengende karakter.
  9. Vector tar mer tid på å få tilgang til elementene, mens sammenhengende egenskap til Array gjør dem svært effektive for å få tilgang til elementene.
  10. Generiske vektordragere, det er i utgangspunktet en typesikker versjon, mens Arrays med sin typesikre, svært effektive når det gjelder hastighet og ytelse, støtter flere dimensjoner.

C ++ Vector vs Array-sammenligningstabell

Nedenfor er den øverste sammenligningen mellom C ++ Vector vs Array

Sammenligningsgrunnlaget mellom C ++ Vector vs ArrayVectorArray
OpprettelseSekvensiell beholder for å lagre elementerOpprinnelig datastruktur, basert på indekskonsept
HukommelseBesette mer minne enn ArrayMinne-effektiv
LengdeLengde variererLengde i fast størrelse
brukHyppig innsetting og slettingHyppig elementtilgang
ResizeEndre størrelse på vektoren er dynamiskEndre størrelse på matriser er dyrt
StrukturMalklasse, kun C ++Sammenhengende minneplassering
indekseringIkke-indeksbasert strukturIndeks basert på laveste adresse som først, og høyeste adresse som sist
AdgangTilgangselementet er tidkrevende, men basert på en posisjon av elementetTilgangselement er konstant tidsdrift uavhengig av elementets plassering

Konklusjon - C ++ Vector vs Array

Begge C ++ Vector vs Array er forskjellige typer, med forskjellige muligheter og lagrer dataene sine på separate måter. Denne lagringsfunksjonene og designen av både C ++ Vector vs Array-datastrukturer gjør dem unike på sine egne måter. En matrise er fast i størrelse, og når den først er tildelt, kan man ikke legge til eller fjerne elementer fra den, også alle elementer må være av samme type. Dermed er det typen sikker og mest effektiv lineær datastruktur når det gjelder hastighet og ytelse. Array støtter også flere dimensjoner. Vektor er en malklasse og kun C ++ konstruerer. I motsetning til Array, har de dynamiske karakterer, kan endres størrelse automatisk med hyppig innsetting og sletting av elementer. Det er egentlig en malklasse som inneholder pekere i haugen, så når du alltid kaller std: vektor, vil "nye" alltid kalles. Vektorelementer er garantert å være sammenhengende, men samtidig er de tregere for tilgang på grunn av pekerbasert tilnærming. Man må først ha tilgang til en peker for å få de praktiske dataene sine.

C ++ Vector vs Array er en lineær datastruktur som er godt egnet for forskjellige scenarier. Hvis hyppig innsetting og sletting oppstår, og på samme tid, minne ikke er en begrensning, er Vector et ideelt valg, mens i scenarier som hyppig tilgang til elementer som kreves med en minnebegrensning, er Array et bedre alternativ. Det hele avhenger av brukssak og krav. En matrise er alltid en liste i naturen, men en vektor er malklasse og det samme som en dynamisk matrise. Arrayet gir begge typer tilgang, direkte og sekvensiell, mens Vector bare tillater sekvensiell tilgang. Og dette er fordi måten disse datastrukturene er lagret i minnet. Siden vektorelementer er plassert i en sammenhengende minneblokk, kan de lett krysses ved hjelp av en iterator.

Det er flere funksjoner tilgjengelig i C ++ med Vector som malklasse, alle funksjoner gir en slags funksjonalitet rundt Vector dvs. begynne (), slutt (), rbegin (), rend (), cbegin (), cend (), crbegin (), crend ​​(), størrelse (), max_ størrelse (), kapasitet (), endre størrelse (), tom (), revers () og krympe_til_fit (). En array er veldig knyttet til maskinvarebegrepet om kontinuerlig, sammenhengende minne, med hvert element identisk i størrelse. Begge C ++ Vector vs Array-ideer stiller seg ganske bra ut, basert på scenarier. På slutten av dagen koker det hele til kravet. En utvikler må veie ned prosjektkravet og dermed ta enhver beslutning.

Anbefalt artikkel

Dette har vært en guide til de største forskjellene mellom C ++ Vector vs Array. Her diskuterer vi også C ++ Vector vs Array viktige forskjeller med infografikk og sammenligningstabell. Du kan også se på følgende C ++ Vector vs Array-artikler for å lære mer -

  1. C ++ referanse vs peker
  2. C # Array vs List
  3. C vs C ++ Ytelse
  4. Java List vs Array List
  5. Krev vs import: Hva er fordelene
  6. C vs C #: Hva er funksjonene