*   >> Lese Utdanning Artikler >> science >> programming

Vektor Modifikatorer i C ++

vektor Modifikatorer i C ++ Container bibliotek Sekvenser i C ++ forenklet - Del 7 divisjon 2 Innledning Dette er del 7 av min serie, Containere bibliotek Sekvenser i C ++, forenklet. I denne delen av serien ser vi på metodene som vil endre en vektor i C ++. Jeg antar at du har lest de foregående delene av denne serien. Merk: Hvis du ikke kan se koden, eller hvis du tror noe mangler (ødelagt kobling, bilde fraværende), bare kontakte meg på [email protected]. Det er, kontakt meg for den minste problemet du har om hva du leser.

void push_back (konst T & x); Denne metoden gir et nytt element ved enden av vektoren listen. Det tar verdien av det nye element som argument. Verdien kan være representert ved sin identifikator i argumentet. Husk, i parameter, er T type plassholder. Det står for en int eller float eller annen objekttype, inkludert instansiert stedene. Dersom vektoren listen er tom, gir fremgangsmåten i det første element. Les og prøv følgende kode: #include #include bruker namespace std; int main () {vector myVtor; myVtor.push_back (4,5); myVtor.

push_back (3,6); domstol domstol returnere 0; } Hvis et unntak ved push_back () metoden, har denne metoden noen effekt. Hvis et unntak kastet fra en vektor ikke er fanget, kan programmet avbryte. Hvis vektor kode og programmet som helhet er godt skrevet, neppe ville et unntak kastes. void pop_back (); Denne metoden tar ut det siste elementet fra vektoren listen. Det går ikke tilbake noe. Du kan vite om elementet ble fjernet ved å kontrollere størrelsen på vektoren. Størrelsen av vektoren listen er redusert med en (vi skal se hvordan kontrollere størrelsen senere).

Følgende program, som viser noe, viser bruken av den pop_back () -metoden. #include #include bruker namespace std; int main () {vector myVtor; myVtor.push_back (4,5); myVtor.push_back (3,6); myVtor.pop_back (); returnere 0; } Sett Metode Jeg vil gi deg to typer innsatsen metoden. iterator innsats (iterator posisjon, const T & x); Fra parametrene, setter denne metoden verdien x i en vektor liste i en stilling identifisert ved en iteratoren. Den returnerer en iterator av stillingen hvor kopien har blitt gjort. Så parameter iterator og avkastningen iterator bør se det samme.

Etter innsetting ett element er størrelsen av vektoren listen økes med en. Merk: En iteratoren kan økes for å referere til den følgende element eller dekrementert for å henvise til den foregående element. Les og prøv følgende kode: #include #include bruker namespace std; int main () {vector 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'); domstol returnere 0; } Hemmeligheten jeg nevnte i forrige del av serien manifesterer seg her som følger: Den begynner metoden returnerer en iterator. Innsatsen metoden bruker dette iterator som et av argumentene for å sette inn et element. Som jeg lovet, trenger du egentlig ikke trenger å kjenne detaljene i iterator for å kunne bruke den med vektoren. Den nest siste setningen ovenfor bekrefter at elementet ble satt inn.

void innsats (iterator posisjon, size_type n, const T & x); Med denne andre innsatsen metoden, er det en ny parameter, som går inn mellom de andre parametre. Denne nye parameteren er antall elementer du vil sette inn. Den første parameteren gir startinnføringsstilling i vektoren listen. Den siste parameteren er den eneste samme objekt som vil bli satt inn fortløpende etter hvert som nye elementer. Denne metoden returnerer ingenting (void).

Les og prøv følgende kode: #include #include bruker namespace std; int main () {vector myVtor

(2); myVtor [0] = 'A'; myVtor [1] = 'B'; __gnu_cxx :: __ normal_iterator>> ITER = myVtor.begin (); ++ ITER; myVtor.insert (ITER, 3, 'Z'); domstol domstol domstol domstol domstol return 0; } Den neste metoden har to typer. iterator slette (iterator stilling); Denne metoden fjerner et element referert til av iteratoren argumentet. Den returnerer iteratoren av posisjonen av elementet fjernes.

Les og prøv følgende kode: #include #include bruker namespace std; int main () {vector 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); domstol returnere 0; } Programmet bruker slutten metoden til å peke rett etter det siste elementet. Iteratoren dekrementeres to ganger. Den resulterende iterator brukes nå til å slette det fjerde elementet. Den nest siste setningen viser den nye fjerde element, som var det femte element.

Selv om en metode eller funksjon kan returnere en verdi, trenger du ikke å bruke (tilordne) den returnerte verdien. Returverdien av slettemetoden her har ikke blitt brukt. iterator slette (iterator første, iterator siste); Fremgangsmåten kan slette en rekke elementer i listen. Det tar en iterator som refererer til det første element i serien, og en annen iteratoren som henviser til den siste element i serien. Den returnerte iterator refererer til elementet som var like nedenfor området.

Følgende kode illustrerer dette: # include # include bruker namespace std; int main () {vector 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>>

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.