Behållarens klasser av STL gör programmeringen produktiv , säker och robust . De är smarta arrayer som utför minnesallokering automatiskt kan ändra storlek , kan du skicka variabler genom hänvisning , infoga element som helst , alla med flammande effektivitet . De ger en bra anledning att byta från C med sina dumma arrayer till C + + . STL erbjuder två typer av behållare klasser : enkla och associativ , där nyckeln är kopplad till varje lagrade objekt . Saker du behöver
Grundläggande kunskaper i C + + Review, en C + + kompilator och företrädesvis en integrerad utvecklingsmiljö
Visa mer Instruktioner
1
Läs och eventuellt memorera de två kategorierna av behållarbärare klasser. Memorera dem aldrig skadat någon och kommer att vara till nytta för dig i det långa loppet sälja Simple Behållare : . Vector < > , listor < > , stack < > , kö < > , deque < >
Associative Behållare : map < > , set < > , multimap < > , Multiset < >
2
Läs om alla behållare klasser genom att visas hur en enkel behållare kan användas . Denna handledning kommer att illustrera metoder för vektor < > .
3
Tilldela en storlek till vektorn . Du kan tilldela vektor storlek med någon av de överbelastade konstruktorer . Dessutom kan du använda reserven ( ) eller tilldela ( ) metoden efter att du har deklarerat en vektor . Alla metoder visas nedan :
vector arr ( 50 ) , //ange kapaciteten
vektorn arr ( 50 , 17 ) , //ange kapaciteten och ge alla delar ett standardvärde ( 17 ) katalog vektor arr2 ( ARR ) , //initialisera en vektor från en annan vektor
vektor vec ,
vec.reserve ( 100 ) , //eller användning reserv ( ) för att allokera minne
4
iterera över en vektor. Du kan göra detta genom att använda den vanliga index [ ] operatör eller genom iteratorer , som är en speciell STL -funktionen . Deras kapacitet är utanför ramen för denna tutorial . Följande kodavsnitt visar storleken ( ) , börjar ( ) och end ( ) medlemmar : Twitter //använder vanlig indexering
for (int i = 0 ; I cout } Twitter //använder iteratorer
för (vector <> :: iterator iter = vec.begin (); iter = vec.end (); ! iter + +) {
cout }
5
lägga till ett element i slutet , ta bort det elementet , infogar ett element i mitten och tillbaka behållaren storlek Du kan utföra alla dessa funktioner genom att använda push_back ( ) , pop_back ( ) , insats ( ) och storlek ( ) metoder , respektive , enligt nedan : .
vec.push_back ( 35 ) ,
vec.pop_back ( ) ;
vec.insert ( pos , 19 ) , //pos är platsen
cout
6
Radera elementen inom ett intervall , radera resten av elementen och se till att vektorn är tom . för dessa använder du medlem funktionerna radera ( ) , klar ( ) och tom ( ) .
vec.erase ( vec.begin ( ) + 5 , vec.end ( ) - 5 ) , //radera alla element utom den första och sista 5
vec.clear ( ) , //radera alla element
if ( true == vec.empty ( ) ) { ... } //Kontrollera om vektor är tom
7
Kolla alla delfunktioner som erbjuds i vector < > Många är vanliga i resten av behållarens klasser : .
_Destroy ( ) , _Eq ( ) , _Lt ( ) , _Ucopy ( ) , _Ufill ( ) , tilldela ( ) , på ( ) , börjar ( ) , back ( ) , kapacitet ( ) , klar ( ) , tom ( ) , avsluta ( ) , Radera ( ) , fram ( ) , get_allocator ( ) , MAX_SIZE ( ) , insert ( ) , operator = , operatör [ ] , pop_back ( ) , push_back ( ) , rbegin ( ) , rend ( ) , reserv ( ) , ändra storlek ( ) , storlek ( ) , swap ( ) , ~ vektor ( ) .
8
se till att du inkluderar vector.h sidhuvudfilen på toppen av din källa filen innan du testar den här koden för dig själv . varje container klass har sin egen header-fil . en lista < > kommer att kräva list.h , en kö < > kommer att kräva queue.h , och så vidare.