Die Container-Klassen der STL die Programmierung produktiv , sicher und robust. Sie sind intelligent Arrays, die Speicherzuweisung automatisch ausführen , können die Größe , können Sie Variablen als Referenz übergeben , legen Sie Elemente an einer beliebigen Stelle , die alle mit lodernden Effizienz . Sie bieten einen guten Grund, aus C mit seinen stummen Arrays wechseln C + +. STL bietet zwei Arten von Container-Klassen : einfache und assoziativ, wo ein Schlüssel mit jedem gespeicherten Objekt zugeordnet ist. Things You
Grundkenntnisse in C + +
Ein C + +-Compiler und vorzugsweise eine integrierte Entwicklungsumgebung
anzeigen Weitere Anweisungen
1
lesen und gegebenenfalls merken die beiden Kategorien brauchen von Container-Klassen . Einprägen von ihnen nie jemand verletzt und wird von Vorteil für Sie auf lange Sicht sein
Einfache Container: . Vector < > , Listen <> , stack < > , Warteschlange <> , deque <>
assoziative Container : map < > , Set <> , multimap <> , multiset <>
2
Infos über alle Container-Klassen , indem sie gezeigt, wie ein einfacher Behälter verwendet werden kann. Dieses Tutorial soll veranschaulichen die Methoden der vector < > .
3
Zuweisen einer Größe des Vektors. Sie können zuweisen vector Größe mit einem der überladenen Konstruktoren . Darüber hinaus können Sie mit der Reserve () oder assign ( )-Methode , nachdem Sie erklärt einen Vektor haben . Alle Methoden sind nachfolgend dargestellt: lizenzfreie Vektor- arr (50); //geben die Kapazität lizenzfreie Vektor- arr (50, 17); //geben die Kapazität und geben allen Elementen einen Standardwert (17)
Vektor arr2 (arr ); //Initialisierung eines Vektors aus einem anderen Vektor lizenzfreie Vektor vec ;
vec.reserve (100) //oder Verwendung reserve ( ) in den Speicher
4
zuweisen Iteration über einen Vektor. Sie können dies mit Hilfe der Standard-Index- Operator [] oder durch Iteratoren , die eine besondere Funktion STL sind zu tun. Ihre Fähigkeiten gehen über den Rahmen dieses Tutorials . Die folgenden Code-Schnipsel zeigen die Größe ( ) begin () und end () Mitglieder : Twitter //Verwendung von Standard- Indizierung
for (int i = 0; i } cout Twitter //Verwendung von Iteratoren
for ( vector < > :: iterator iter = vec.begin (); iter = vec.end (); ! iter + +) { cout
}
5
Fügen Sie ein Element am Ende , entfernen Sie dieses Element , fügen Sie ein Element in der Mitte und gibt die Behältergröße Sie können alle diese Funktionen mithilfe der push_back () , pop_back () , insert () und size () -Methoden bzw. durchzuführen , wie unten dargestellt: .
vec.push_back (35);
vec.pop_back ();
vec.insert (pos , 19) ; //pos ist die Lage
cout Seite 6
Erase die Elemente innerhalb ein Bereich ist, löschen Sie den Rest der Elemente und stellen Sie sicher , dass der Vektor leer ist. Für diese , verwenden Sie die Member-Funktionen löschen ( ) , clear () und empty () .
vec.erase ( vec.begin () + 5, vec.end ( ) - 5 ) //löscht alle Elemente mit Ausnahme des ersten und letzten 5
vec.clear (); //alle Elemente
löschen if (true == vec.empty () ) {...} //überprüfen, ob der Vektor leer
7
Schau dir alle Member-Funktionen in vector < > Viele sind über den Rest der gemeinsamen Container-Klassen angeboten : .
_Destroy () , _Eq () , _LT () , _Ucopy () , _Ufill () assign () , um () begin () , back () , Kapazität () , clear () , empty () , end () , Löschen () , front () , get_allocator () , max_size () , insert () , operator = , operator [ ] , pop_back () , push_back () , rbegin () , zerreißen () , reserve () , die Größe ( ) , size () , swap () , ~ vector ().
8
Stellen Sie sicher, gehören die vector.h Header-Datei an der Spitze der Quelldatei , bevor Sie diesen Code zu testen für sich. Jeder Behälter Klasse hat ihren eigenen Header-Datei . eine Liste <> benötigen list.h , eine Warteschlange <> wird queue.h erfordern , und so weiter.