Beholderen klasser av STL gjøre programmeringen produktive, sikker og robust. De er smarte arrays som utfører minne tildeling automatisk , kan endre størrelse, la deg passere variabler ved referanse, sette inn elementer på noe punkt , alle med flammende effektivitet. De gir en god grunn til å bytte fra C med sine dumme matriser til C + + . STL tilbyr to typer container klasser: enkle og assosiativ , hvor en tast er knyttet til hver lagret objekt. Du trenger
Grunnleggende kjennskap til C + +
A C + + kompilatoren og helst et integrert utviklingsmiljø
Vis flere Instruksjoner
en
lest og eventuelt huske de to kategoriene av container klasser . Memorere dem aldri såre noen, og vil være til nytte for deg i det lange løp
Enkle Containere: . Vektor <> , lister < > , stack <> , kø < >, deque < >
Assosiative Containere: map < > , set < > , multimap < > , multiset < >
2
Lær om alle container klasser ved å bli vist hvordan en enkelt container kan brukes. Denne opplæringen vil illustrere metodene for vektor < > .
3
Angi en størrelse til vektor . Du kan tilordne vektor størrelse du bruker noen av de overbelastet konstruktører . I tillegg kan du bruke reserve ( ) eller tildele ( )-metoden etter at du har erklært en vektor . Alle metodene er vist nedenfor : en vektor arr ( 50 ), //angir kapasiteten
vektor arr ( 50 , 17 ), //angir kapasiteten og gi alle elementer en standardverdien ( 17 )
vektor arr2 (arr ), //initialisere en vektor fra en annen vektor
vektor vec ;
vec.reserve ( 100 ), //eller bruk reserve () for å allokere minne
4
iterere over en vektor. Du kan gjøre dette ved hjelp av standard index [ ] operatør eller gjennom iteratorer , som er en spesiell STL funksjonen. Deres evner er utenfor omfanget av denne opplæringen . Følgende kodesnutter demonstrere størrelsen ( ) , begynner () og slutt ( ) medlemmer : Twitter //bruker standard indeksering
for ( int i = 0 ; i cout } Twitter //bruker iteratorer
for ( vektor < > :: iterator iTER = vec.begin (); iTER = vec.end (); ! iTER + + ) {
cout }
5
Legg et element på slutten, fjerne dette elementet , setter inn et element i midten og returnere container størrelse Du kan utføre alle disse funksjonene ved å bruke push_back ( ) , pop_back ( ) , sette inn ( ) og størrelse ( ) metoder , henholdsvis , som vist nedenfor : .
vec.push_back ( 35 ) ;
vec.pop_back ();
vec.insert ( pos , 19 ), //pos er plasseringen
cout
6
Erase elementene innenfor et område, slette resten av elementene og sørge for at vektoren er tom . for disse, bruker du medlem funksjoner slett ( ) , klar () og tom ( ) .
vec.erase ( vec.begin ( ) + 5 , vec.end ( ) - 5 ), //slette alle elementer bortsett fra den første og siste 5
vec.clear ( ), //slette alle elementer
if ( true == vec.empty ( ) ) { ... } //sjekk om vektor er tom
7
Sjekk ut alle medlemslandene funksjonene som tilbys i vektor < > Mange er vanlig over hele resten av container klasser : .
_Destroy ( ) , _Eq ( ) , _Lt ( ) , _Ucopy ( ) , _Ufill ( ) , tildele ( ) , på ( ) , begynner ( ) , rygg ( ) , kapasitet ( ) , clear ( ) , tom ( ) , end ( ) , slette ( ) , foran ( ) , get_allocator ( ) , MAX_SIZE ( ) , insert ( ) , operatør = , operatør [ ] , pop_back ( ) , push_back ( ) , rbegin ( ) , rive ( ) , reserve ( ) , endre størrelse ( ) , størrelse ( ) , swap ( ) , ~ vektor ( ) .
8
Kontroller at du inkluderer vector.h header -fil på toppen av din kilde filen før du tester denne koden for deg selv . hver container klasse har sin egen header -fil. en liste < > vil kreve list.h , en kø < > vil kreve queue.h , og så videre.