Hvordan lage en vektor av strenger i C ++

Hvordan lage en vektor av strenger i C ++
Hvordan lage en vektor av strenger i C++? Hvis listen over strenger er kort, er en veldig rask måte å lage vektoren som i følgende program: #include
#inkludere
#inkludere
ved hjelp av navneområdet STD;

VectorVtr = "Donkey", "Geit", "Cat", "Pig", "Dog", "Cow", "Sheep", "Horse", "Water Buffalo", "Red Fox";
retur 0;

Programmet begynner med inkludering av iostream -biblioteket, som er nødvendig for tastaturinngang, og utgang til terminalen (skjerm). Dette blir fulgt av inkludering av strengbiblioteket, som er nødvendig for automatisk komponering av strenger. Som blir fulgt av inkludering av vektorbiblioteket, noe som gjør opprettelsen og bruken av vektorer enkelt. Etter det er en uttalelse, som insisterer på at ethvert navn som ikke er gitt av STD, er fra standardnavnet. Deretter er det C ++ hovedfunksjonen i koden. For å ha en vektor av strenger, er all ovennevnte kodeoverskrift nødvendig.

Den første uttalelsen i hovedfunksjonen () er opprettelsen av vektoren, VTR, av dyrenavn. Det begynner med det reserverte ordet, vektor. Umiddelbart etter dette er vinkelbraketter, som har ordet, "streng". Her er "streng" en malparameterspesialisering. Hvis det var en vektor av tegn, ville "røye" vært i stedet for "streng"; Hvis det var en vektor av heltall, ville "int" vært i stedet for "streng"; Hvis det var en vektor av floats, ville "float" ha vært i stedet for "streng"; og så videre.

Etter vinkelbrakettene er det et rom, og deretter navnet på vektoren valgt av programmereren. Dette blir fulgt av plass, oppgave, plass igjen, slutt deretter initializer_list. Initializer_list har navnene (strenglitteraler) til dyrene; Hvert navn er i sitater. Hvis det er plass mellom et par sitater, blir det rommet en del av den tilsvarende strengen. Initializer_list er avgrenset av seler.

Denne uttalelsen er en definisjon. Uten oppdragsoperatøren og initializer_listen, ville uttalelsen bare være en erklæring. Med initializer_listen blir uttalelsen en definisjon så vel som det fremdeles er en erklæring.

“Hvordan lage en vektor av strenger i C ++” betyr også, “Hva er de forskjellige måtene å lage en vektor av strenger, i C++?”De forskjellige måtene å lage en vektor av strenger i C ++ er ganske mange. De mest brukte måtene er illustrert i denne artikkelen.

Begynner med tom vektor av strenger

En tom vektor kan opprettes først, før strengelementene legges til. Når et element tilsettes i en vektor, sies elementet å bli dyttet_back inn i vektoren, fordi elementet settes inn på baksiden. Følgende C ++ hovedfunksjon viser hvordan dette kan gjøres:

int main ()

VectorVtr;
VTR.push_back ("esel"); VTR.push_back ("geit"); VTR.Push_back ("Cat"); VTR.push_back ("gris");
VTR.push_back ("hund"); VTR.push_back ("ku"); VTR.push_back ("sau"); VTR.push_back ("hest");
VTR.Push_back ("Water Buffalo"); VTR.Push_back ("Red Fox");
return 0;

Den første uttalelsen skaper en tom vektor av strenger. Hver av de andre utsagnene skyver en streng inn i vektoren. For å oppnå dette, begynn med vektortavnet, deretter DOT, og deretter Push_back () medlemsfunksjonen. Argumentet for Push_back -funksjonen er enten strengen bokstavelig, eller identifikatoren (variabelen) for strengen bokstavelig.

Opprette med initializer_list

En måte å lage med initializer_list, er som vist tidligere. Den andre veien er som følger:

int main ()

VectorVtr ("Donkey", "Goat", "Cat", "Pig", "Dog", "Cow", "Sheep", "Horse", "Water Buffalo", "Red Fox");
retur 0;

Uttrykket,

vektor VTR (argumenter)

er et eksempel på en konstruktør. Denne gangen er initializer_listen i parentesen til konstruktøren. Det er ingen tildelingsoperatør i konstruksjonen (opprettelsen) av strengens vektor.

Opprette med initializer_list identifikator

I de ovennevnte to eksemplene med initializer_list ble initializer_list bokstavelig brukt. I stedet for å bruke bokstavelig, kan identifiseringen av initializer_listen også brukes. I følgende kode tildeles identifikatoren til en vektor (initializer_list) til den nye vektoren med tildelingsoperatøren:

int main ()

VectorOldVector = "Donkey", "Geit", "Cat", "Pig", "Dog", "Cow", "Sheep", "Horse", "Water Buffalo", "Red Fox";
vectornewVector = oldVector;
retur 0;

Den siste-men-en-uttalelsen er nøkkelopplysningen her.

Følgende kode viser hvordan identifikatoren til en vektor (initializer_list) brukes i parentesene til en ny vektorkonstruktør:

int main ()

VectorOldVector = "Donkey", "Geit", "Cat", "Pig", "Dog", "Cow", "Sheep", "Horse", "Water Buffalo", "Red Fox";
VectornewVector (oldVector);
retur 0;

Identifikatoren kan også være en Rvalue -referanse, som vist i følgende kode:

int main ()

Vector && oldVector = "esel", "geit", "katt", "gris", "hund", "ku", "sau", "hest", "vannbøffel", "rød fox";
VectornewVector (oldVector);
retur 0;

Legg merke til bruken og plasseringen av &&.

Tildel () Medlemsfunksjon

Vektorklassen har en medlemsfunksjon som er tilordnet (). Argumentet er en initializer_list (bokstavelig). Så etter å ha opprettet en tom vektor, kan Assign () medlemsfunksjonen brukes til å sette i de første elementene på listen, som følgende kode viser:

int main ()

VectorVtr;
VTR.tilordne ("esel", "geit", "katt", "gris", "hund", "ku", "sau", "hest", "vannbuffalo", "rød reve");
retur 0;

Når antall elementer er kjent

Når antallet strenger er kjent, kan det settes i parentesen til konstruktøren. Hvis antallet strenger er 10, for eksempel, vil vektoren bli konstruert med 10 standard stirrende verdier. Standard strengverdi er den tomme strengen, "". Etter det kan de forskjellige praktiske strengene settes inn, i passende posisjoner, ved hjelp av Square Bracketses (Abscript) -operatøren. Se følgende kode:

int main ()

VectorVtr (10);
vtr [0] = "esel"; VTR [1] = "Geit"; VTR [2] = "Cat"; VTR [3] = "Pig";
VTR [4] = "Dog"; VTR [5] = "Cow"; VTR [6] = "Får"; VTR [7] = "Horse";
VTR [8] = "Water Buffalo"; VTR [9] = "Red Fox";
retur 0;

Standard vektorstrengverdi

Standard strengverdi er den tomme strengen, “”, som ikke har noen plass og ingen karakter. En tom vektor av strenger, har ingen strengverdi. Dette betyr at den heller ikke har noen tom standard strengverdi. På den annen side har en vektor opprettet med et antall standardstrenger det antall standardstrenger før praktiske verdier (strenger) kan legges til. Følgende kode viser at enhver standard vektorstreng er "":

int main ()

vektor VTR (10);
if (VTR [4] == "")
cout << "seen" << endl;
retur 0;

Utgangen er "sett", og bekrefter at enhver standard vektorstreng er, "".

Konklusjon

En vektor av strenger opprettes slik en vektor av enhver annen type vil bli opprettet. Husk å lage malens spesialisering, streng. Ikke glem å inkludere strengbiblioteket og vektorbiblioteket. De vanlige måtene å lage vektorer med streng som elementtypen er illustrert ovenfor.