Vector Modifikatorer i C ++ Container Bibliotek Sekvenser i C ++ Forenklet - Del 7 Division 2 Indledning Dette er den del 7 af min serie, Beholdere Bibliotek Sekvenser i C ++, Forenklet. I denne del af serien, ser vi på de metoder, der vil ændre en vektor i C ++. Jeg antager, at du har læst de foregående dele af denne serie. Bemærk: Hvis du ikke kan se koden, eller hvis du tror noget mangler (brudt link, billede fraværende), bare kontakte mig på [email protected]. Det vil sige, kontakt mig for det mindste problem, du har om, hvad du læser.
ugyldig push_back (const T & X); Denne metode tilføjer et nyt element ved enden af vektoren listen. Det tager værdien af det nye element, som argument. Værdien kan være repræsenteret ved sin identifikator i argumentet. Husk, i parameteren, T er den type pladsholder. Det står for en int eller float eller en anden objekttype, herunder instantieres objekter. Hvis vektoren er tom, hvilken fremgangsmåde bringer i det første element. Læs og prøv følgende kode: # include # include hjælp namespace std; int main () {vektor myVtor; myVtor.push_back (4.5); myVtor.push_back (3.
6); cout cout returnere 0; } Hvis en undtagelse kastes af push_back () metode, denne metode har ingen effekt. Hvis en undtagelse kastet fra en vektor ikke er fanget, kan dit program afbryde. Hvis din vektor kode og dit program som helhed er godt skrevet, næppe ville en undtagelse blive kastet. void pop_back (); Denne metode tager ud det sidste element fra vektoren listen. Det vender ikke tilbage noget. Du kan vide, om elementet blev fjernet ved at kontrollere størrelsen af vektoren. Størrelsen af vektoren listen reduceres med 1 (vi skal se, hvordan man kan kontrollere størrelsen senere).
Følgende program, som viser noget, viser anvendelsen af pop_back () metode. # include # include hjælp namespace std; int main () {vektor myVtor; myVtor.push_back (4.5); myVtor.push_back (3.6); myVtor.pop_back (); tilbage 0; } Indsæt Metode Jeg vil give dig to typer af indsatsens metoden. iterator indsats (iterator position, const T & X); Fra parametrene, denne metode indsætter værdien x i en vektor liste i en position identificeret ved et iterator. Den returnerer en iterator af den position, hvor kopien er foretaget. Så parameteren iterator og afkastet iterator bør henvise til de samme ting.
Efter indføring ét element, er størrelsen af vektoren listen forøges med én. Bemærk: En iterator kan øges til at henvise til følgende element eller dekrementeres at henvise til det forrige element. Læs og prøv følgende kode: # include # include hjælp namespace std; int main () {vektor myVtor
(5); myVtor [0] = 'A'; myVtor [1] = 'B'; myVtor [2] = 'C'; myVtor [3] = 'D'; myVtor [4] = 'E'; __gnu_cxx :: __ normal_iterator>> iter1 = myVtor.begin (); ++ iter1; __gnu_cxx :: __ normal_iterator>> iter2 = myVtor.
insert (iter1, "Z"); cout returnere 0; } Hemmeligheden jeg nævnte i den tidligere del af serien viser sig her som følger: begynde metode returnerer en iterator. Indsatsen metode bruger denne iterator som et af sine argumenter for at indsætte et element. Som jeg lovede, behøver du ikke virkelig har brug for at kende detaljerne i iterator for at kunne bruge den med vektoren. Den næstsidste sætning ovenfor, bekræfter, at elementet blev indsat. ugyldig indsats (iterator position, size_type n, const T & X); Med denne anden insert metode, der er en ny parameter, som går ind mellem de andre parametre.
Denne nye parameter er antal elementer, du vil indsætte. Den første parameter giver starten insertion position i vektoren listen. Den sidste parameter er enkelt samme objekt, der vil blive indsat efter hinanden som nye elementer. Denne metode returnerer ingenting (void). Læs og prøv følgende kode: # include # include hjælp namespace std; int main () {vektor myVtor
(2); myVtor [0] = 'A'; myVtor [1] = 'B'; __gnu_cxx :: __ normal_iterator>> ITER = myVtor.begin (); ++ iter; myVtor.insert (ITER, 3, 'Z'); cout cout cout cout cout tilbagevenden 0; } Den næste metode har to typer.
iterator slette (iterator position); Denne metode fjerner et element fra iterator argument henvist til. Den returnerer iteratoren af positionen af den fjernede element. Læs og prøv følgende kode: # include # include hjælp namespace std; int main () {vektor myVtor
(5); myVtor [0] = 'A'; myVtor [1] = 'B'; myVtor [2] = 'C'; myVtor [3] = 'D'; myVtor [4] = 'E'; __gnu_cxx :: __ normal_iterator>> iter1 = myVtor.end (); --iter1; --iter1; myVtor.erase (iter1); cout returnere 0; } Programmet bruger enden metode til at pege lige efter det sidste element. Iteratoren dekrementeres to gange.
Den resulterende iterator er nu bruges til at slette det fjerde element. Den næstsidste opgørelse viser den nye fjerde element, som var det femte element. Selvom en metode eller funktion kan returnere en værdi, behøver du ikke at bruge (tildele) den returnerede værdi. Returværdien af sletningen metoden her har ikke været brugt. iterator slette (iterator først, iterator sidste); Metoden kan slette en række elementer i listen. Det tager en iterator, der refererer til det første element i rækken, og en anden iterator, der refererer til det sidste element af intervallet.
Den returnerede iterator refererer til det element, der var lige under intervallet. Følgende kode illustrerer dette: #include #include hjælp namespace std; int main () {vektor myVtor
(5); myVtor [0] = 'A'; myVtor [1] = 'B'; myVtor [2] = 'C'; myVtor [3] = 'D'; myVtor [4] = 'E'; __gnu_cxx :: __ normal_iterator>> iter1 = myVtor.begin (); ++ iter1; __gnu_cxx :: __ normal_iterator>>