C ++ vektorinitialisering med alle nuller

C ++ vektorinitialisering med alle nuller
Å initialisere en vektor betyr å gi vektoren praktiske elementer under opprettelsen. Opprette en vektor kan være definisjon eller erklæring. Definisjon er når minnet er tildelt for elementene. Erklæring har en nyanse i sin betydning: Når en vektor opprettes uten minnetildeling for sine elementer, er det erklæring. Når vektoren opprettes og minnet er tildelt for sine elementer, er det også erklæring. I andre ord har erklæring to betydninger, og det kan bety definisjon.

Vektoren er en klasse i vektorbiblioteket som er inkludert i programmet. Fra samme vektorklasse kan forskjellige vektorobjekter bli instantiert. Vektorobjektklæring uten minnetildeling for elementene er instantiering. Vektorobjektdeklarasjon med minnetildeling for elementene er fremdeles instantiering.

Ideelt sett gjøres initialisering under instantiering. Imidlertid, når erklæring utføres uten minnetildeling for elementene, må initialiseringen gjøres ved å tildele eller pushing_back (inn), startverdier.

Denne informasjonen gir to situasjoner for initialisering: initialisering med vektoroppretting som en definisjon eller initialisering etter erklæring uten definisjon etter tildeling (eller pushing_back inn).

Vektorskaping kan klassifiseres i to kategorier: Vektorskaping med elementer og vektorskaping uten elementer. Målet med denne artikkelen må tolkes som: hvordan lage en vektor med alle innledende elementer som er null. For å ha en vektor med alle elementer null må typen elementer være int eller float eller deres varianter. Vi vil bruke Type Int i denne artikkelen.

Initialisering ved vektorskaping med elementer

Opprette med initializer_list

Initializer_list er en liste over verdier av samme type atskilt med komma, og avgrenset med tannregulering. Det er to syntaks for å lage en vektor med initializer_list. Syntaksene er:

vektor og operatør = (initializer_list)
og
vektor (initializer_list, const allocator & = allocator ())

For å lage en vektor med alle nuller, bør alle verdiene i initializer_listen bare være nuller. Følgende program illustrerer dette ved hjelp av den første syntaksen der initializer_listen er tilordnet vektorobjektet med tildelingsoperatøren:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

VectorVtr = 0, 0, 0, 0, 0;
for (int i = 0; icout<cout<retur 0;

Utgangen er:

0 0 0 0 0

I programoverskriften ble vektorbiblioteket inkludert. Vektorerklæring finnes i den første uttalelsen i hovedfunksjonen. Vektorinnholdet vises ved resten av koden i hovedfunksjonen.

For den andre syntaksen er den andre parameteren valgfritt og vil ikke bli inkludert i følgende program. For denne andre syntaksen er initializer_listen argumentet til vektorkonstruktørfunksjonen. Følgende program illustrerer bruken av den andre syntaksen:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

VectorVtr (0, 0, 0, 0, 0);
for (int i = 0; icout<cout<retur 0;

Utgangen er:

0 0 0 0 0

Inngangen var fem nuller, og utgangen er de samme fem nulene.

Antall vektorelementer kjent på forhånd

Antall vektorelementer kan være kjent på forhånd, men de faktiske elementene er kanskje ikke kjent på forhånd. I dette tilfellet bør vektoren fortsatt initialiseres til nuller. Vektorskapingssyntaks for dette er:

vektor (størrelse_type n, const t & verdi, const allocator & = allocator ())

Den tredje parameteren er valgfri og vil ikke være en del av følgende program. Det første argumentet er antall elementer, og det andre argumentet er standardverdien, som i dette tilfellet er null for alle elementene. Følgende program viser hvordan du bruker denne syntaks for en vektorstørrelse på 5:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

VectorVtr (5, 0);
for (int i = 0; icout<cout<retur 0;

Utgangen er:

0, 0, 0, 0, 0

Initialisering etter vektoroppretting uten elementer

Her opprettes en tom vektor før initialisering. Syntaksen for å lage en tom vektor er:

Vector () NoExcept (NOExcept (Allocator ())): Vector (allocator ())

Syntaksen for å tilordne startverdier til en vektor med initializer_listen, er:

void tilordne (initializer_list)

Følgende program oppretter en tom vektor og tildeler deretter nuller til elementene:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

VectorVtr;
VTR.tilordne (0, 0, 0, 0, 0);
for (int i = 0; icout<cout<retur 0;

Utgangen er:

0 0 0 0 0

Den første uttalelsen i hovedfunksjonen skaper den tomme vektoren. Den andre uttalelsen er initialiseringen ved bruk av Assign () medlemsfunksjonen. Argumentet til Assign () medlemsfunksjonen er initializer_list med hvert element i null.

Syntaksen for å tilordne standardverdier til en vektor, når antall elementer er kjent på forhånd, er:

void tilordning (størrelse_type n, const t & u);

Med denne syntaksen er det første argumentet antall elementer i vektoren, og det andre argumentet er standardverdien. For initialisering med nuller, bare lag standardverdien null. Husk at dette skal gjøres når en tom vektor er opprettet. Følgende program illustrerer dette:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

VectorVtr;
VTR.tilordne (5, 0);
for (int i = 0; icout<cout<retur 0;

Utgangen er:

0 0 0 0 0

Skyver tilbake

Etter at en tom vektor er opprettet, kan et antall nuller skyves_backed inn i vektoren for initialisering som illustrert i følgende program:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

VectorVtr;
VTR.push_back (0); VTR.push_back (0); VTR.push_back (0);
VTR.push_back (0); VTR.push_back (0);
for (int i = 0; icout<cout<retur 0;

Utgangen er:

0 0 0 0 0

VEKTOR av standardtypeverdier og initialisering

Hvis antallet elementer er kjent på forhånd, vil du uten å indikere verdiene, er standardverdiene for typen være de opprinnelige verdiene. Standardverdien for typen int er null. Syntaksen for å lage en slik vektor er:

Eksplisitt vektor (størrelse_type n, const allocator & = allocator ())

Det andre argumentet er valgfritt og kan utelates. Det første argumentet er størrelsen på vektoren. Hvis vektortypen er int, vil de opprinnelige verdiene alle være nuller. Følgende program illustrerer dette:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

VectorVtr (5);
for (int i = 0; icout<cout<retur 0;

Utgangen er:

0 0 0 0 0

Konklusjon

Størrelsen på vektoren i alle kodeprøvene ovenfor er 5. Ethvert annet antall kan brukes. En vektor kan initialiseres med alle nuller på tre hovedmåter: a) Bruk initializer_list, b) Bruk tildelingen () vektormedlemmet til en tom vektor (eller push_back ()), eller c) bruk int eller float som mal Parameterspesialisering for en vektor av opprinnelig bare standardverdier.