De container klasser af STL gør programmering produktiv , sikker og robust. De er smarte arrays , der udfører hukommelse tildeling automatisk kan ændre størrelse , så lad du passerer variabler ved henvisning, indsætte elementer på noget tidspunkt , alle med forrygende effektivitet. De giver en god grund til at skifte fra C med sine dumme arrays til C + + . STL tilbyder to typer af container klasser: enkle og associative , hvor en nøgle er forbundet med hver lagret objekt. Ting du skal
Grundlæggende kendskab C + + Online A C + + compiler og helst et integreret udviklingsmiljø
vise flere Instruktioner
1
Læs og eventuelt huske de to kategorier af container klasser . Lagring dem aldrig skadet nogen , og vil være til gavn for dig i det lange løb Salg Simple Containere : . Vektor <> , lister < > , stack <> , kø <> , deque < >
Associative Containere : map < > sæt < > , multimap < > , MultiSet < >
2
Lær om alle container klasser ved at blive vist, hvordan en simpel container kan bruges . Denne tutorial vil illustrere metoder vektor < > .
3
Tildel en størrelse til vektor. Du kan tildele vektor størrelse ved hjælp af nogen af de overbelastede konstruktører . Derudover kan du bruge reserven () eller tildele () metode , efter at du har erklæret en vektor. Alle de metoder er vist nedenfor : Hej vector arr (50 ) //angive kapaciteten
Vector arr. (50, 17 ) //angive kapacitet og giver alle elementer en standardværdi (17)
vektor arr2 ( arr. ) //initialisere en vektor fra en anden vektor
Vector VEC ,
vec.reserve (100 ) //eller brug reserve ( ) for at allokere hukommelse
4
gentage tværs af en vektor . Du kan gøre dette ved hjælp af standard- indekset [ ] operatør eller gennem iteratorer , som er en speciel STL funktion. Deres evner er uden for rammerne af denne tutorial. De følgende kodestumper demonstrere størrelse ( ) , begynder () og udgang ( ) medlemmer : Hej //ved hjælp af standard indeksering
for ( int i = 0; jeg cout }
//anvendelse af iteratorer
for (vektor < > :: iterator iter = vec.begin (); iter = vec.end (); ! iter + +) {
cout }
5
Tilføj et element i slutningen, fjerne dette element , skal du indsætte et element i midten og returnere beholderen størrelse Du kan udføre alle disse funktioner ved at bruge push_back () , pop_back () , indsætte () og størrelse ( ) metoder , henholdsvis som vist nedenfor: . < br > vec.push_back ( 35)
vec.pop_back ();
vec.insert ( pos, 19 ) //pos er placeringen
cout
6
Slet de elementer inden for et interval , slette resten af elementerne , og sørg for, at vektoren er tom . for disse, kan du bruge medlemmet funktioner erase () , klar () og tom ().
vec.erase ( vec.begin () + 5 , vec.end () - 5 ) //slette alle elementer undtagen den første og sidste 5
vec.clear () //slette alle elementer
if ( sand == vec.empty () ) { ... } //kontrollere, om vektor er tom
7
Tjek alle de medlem funktioner , der tilbydes i vektor < > Mange er fælles på tværs af resten af container klasser : .
_Destroy () , _Eq () , _Lt () , _Ucopy () , _Ufill () , tildele () , på ( ) , begynder () , ryg () , kapacitet () , klar () tom ( ) ende ( ) , slette () foran ( ) , get_allocator () , MAX_SIZE () , indsats ( ) , operatør = , operatør [], pop_back () , push_back () , rbegin () , sønderrive () , reserve ( ) , resize ( ) , størrelse ( ) swap () ~ vektor ( ) .
8
Sørg du inkluderer vector.h headerfilen øverst i din kilde fil, før du teste denne kode til dig selv. hver beholder klasse har sin egen header fil. en liste < > vil kræve list.h , en kø < > vil kræve queue.h , og så videre.