De container klassen van STL maken het programmeren productief , veilig en robuust . Ze zijn slim arrays dat het toewijzen van geheugen automatisch uit te voeren , kan vergroten of verkleinen, laat u variabelen doorgeven door verwijzing , plaatst u elementen op elk punt , allen met brandende efficiëntie . Ze bieden een goede reden om over te schakelen van C met zijn domme arrays om C + + . STL biedt twee soorten container klassen : eenvoudig en associatieve , waar een sleutel is gekoppeld aan elke opgeslagen object . Wat je nodig hebt Basiskennis van C + + een C + + compiler en bij voorkeur een geïntegreerde ontwikkelomgeving Toon Meer Aanwijzingen 1 lezen en eventueel onthouden de twee categorieën van de container klassen . Het onthouden van hen nooit kwaad en zal van voordeel voor u op de lange termijn verkopen Simple Containers : . Vector < > , lijsten < > , stack < > , wachtrij < > , deque < > Associatieve Containers : map < > , set < > , multimap < > , multiset < > 2 Lees over alle container klassen door wordt getoond hoe een eenvoudige container kan worden gebruikt . Deze tutorial zal illustreren de methoden van vector < > . 3 Wijs een maat om de vector . U kunt vector formaat met een van de overbelaste constructeurs toewijzen . Daarnaast kunt u de reserve ( ) gebruiken of toe te wijzen ( ) -methode nadat u een vector hebt verklaard . Alle methoden worden hieronder weergegeven : vector arr ( 50 ) ; //geef de capaciteit vector arr ( 50 , 17 ) ; //geef de capaciteit en geef alle elementen een standaard waarde ( 17 ) op Twitter vector arr2 ( arr ) ; //initialiseren een vector van een andere vector vector vEC ; vec.reserve ( 100 ) ; //of gebruik reserve ( ) om het geheugen 4 toewijzen itereren over een vector . U kunt dit doen door gebruik te maken van de standaard index [ ] operator of via iteratoren , die een speciale STL functie . Hun mogelijkheden zijn buiten het bestek van deze tutorial . De volgende code snippets tonen de grootte ( ) , begin () en end ( ) leden : Twitter //met behulp van standaard indexering for (int i = 0 ; i cout } Twitter //gebruik van iterators voor ( vector < > :: iterator iter = vec.begin ( ) ; iter = vec.end ( ) ; ! iter + + ) { cout } 5 Voeg een element aan het einde , verwijder dat element , plaatst een element in het midden en de terugkeer van de container formaat U kunt al deze functies uitvoeren met de push_back ( ) , pop_back ( ) , insert ( ) en grootte ( ) methoden , respectievelijk , zoals hieronder weergegeven : . < br > vec.push_back ( 35 ) ; vec.pop_back ( ) ; vec.insert ( pos , 19 ) ; //pos is de locatie cout Erase 6 van de elementen binnen een bereik , wist de rest van de elementen en zorg ervoor dat de vector leeg is . Voor deze , het lid functies wissen ( ) gebruikt u , duidelijk ( ) en leeg ( ) . vec.erase ( vec.begin ( ) + 5 , vec.end ( ) - 5 ) ; //wis alle elementen behalve de eerste en de laatste 5 vec.clear ( ) ; //wis alle elementen if ( true == vec.empty ( ) ) { ... } //controleren of vector leeg is 7 Bekijk alle lidfuncties de aangeboden in vector < > Velen zijn gebruikelijk in de rest van de container klassen : . _Destroy ( ) , _Eq ( ) , _Lt ( ) , _Ucopy ( ) , _Ufill ( ) , toe te wijzen ( ) , op ( ) , begin () , rug ( ) , capaciteit ( ) , duidelijke ( ) , leeg ( ) , einde ( ) , wis ( ) , vooraan ( ) , get_allocator ( ) , max_size ( ) , insert ( ) , operator = , operator [ ] , pop_back ( ) , push_back ( ) , rbegin ( ) , scheuren ( ) , reserve ( ) , resize ( ) , size ( ) , swap ( ) , ~ vector ( ) . 8 Zorg ervoor dat u het vector.h header-bestand aan de bovenkant van uw bronbestand voordat u deze code te testen voor jezelf . elke container klasse heeft zijn eigen header file . een lijst < > zal vereisen list.h , een wachtrij < > zal queue.h vereisen , en ga zo maar door .
|