Was sind STL-Container in C++?

Was Sind Stl Container In C



In C++, STL (Standard Template Library), Behälter sind Objekte, die zum Speichern der Sammlungen der anderen Objekte verwendet werden. Sie funktionieren ähnlich wie Klassenvorlagen und unterstützen eine große Anzahl von Elementtypen und stellen Memberfunktionen bereit, um direkt oder über Iteratoren auf ihre Elemente zuzugreifen.

Arten von C++-STL-Containern

In C++ gibt es drei Arten von STL Behälter , die unten aufgeführt sind:







1: Sequentielle Container

In C++ ermöglichen uns sequentielle Container die Speicherung von Elementen, die sequentiell abgerufen werden können. Diese Behälter werden als Arrays oder verknüpfte Listen von Datenstrukturen codiert. Nachfolgend sind einige Arten von sequentiellen Containern aufgeführt.



  • Vektor: Es handelt sich um ein Array mit dynamischer Größe, das zusammenhängend im Speicher gespeichert wird.
  • Worüber: Es stellt eine doppelendige Warteschlange dar, die Vorgänge zum Einfügen und Löschen unterstützt.
  • Array: Es handelt sich um ein statisches Array, das während der Kompilierung zugewiesen wird und dessen Größe unverändert bleibt.
  • Aufführen: Es handelt sich um eine doppelt verknüpfte Liste, die ein schnelles Einfügen und Löschen von Elementen an jeder Stelle in der Liste ermöglicht.
  • Weiterleitungsliste: Es ist eine einfach verknüpfte Liste wie eine Liste, aber Sie können sie nur in eine Richtung durchlaufen.

Beispiel



In diesem Beispiel verwenden wir die Vektorklasse um zu zeigen, wie a sequentiell Container betreibt.





#include
#include
Verwenden des Namensraums std;
int main ( ) {
// Initialisiere einen Vektor von int Typ
Vektor < int > Zahlen = { 10 , 2 , 16 , 70 , 5 } ;
// Drucken Sie den Vektor aus
cout << „Zahlen sind:“ ;
für ( Auto & ich: nums )
{
cout << ich << ',' ;
}
zurückkehren 0 ;
}

Der obige Code zeigt die Verwendung von sequentiell Behälter im Vektorformat, das die Speicherung ganzzahliger Arrays ermöglicht. Das Programm initialisiert einen Vektor vom Typ Integer, weist ihm Werte zu und gibt diese mithilfe einer Schleife aus. Dieses Beispiel zeigt, wie einfach es ist, Daten in C++ zu speichern und darauf zuzugreifen sequentielle Container .



2: Assoziative Container

Die assoziativen Container ermöglichen es uns, Elemente in der bestimmten Reihenfolge zu speichern, die durch den Vergleichsoperator definiert wird. nicht wie sequentielle Container , die Reihenfolge der Elemente in Assoziative Container wird mithilfe von Schlüsseln verwaltet, die es Benutzern ermöglichen, die Elemente zu organisieren und darauf zuzugreifen. Wenn ein Element in ein eingefügt wird Assoziativer Container , wird es basierend auf seinem Schlüssel automatisch an der richtigen Position sortiert. Diese Arten von Containern werden intern wie binäre Baumdatenstrukturen implementiert.

Der assoziativ Behälter werden kategorisiert als:

  • Karte: eine Sammlung von Schlüssel-Wert-Paaren, die nach eindeutigen Schlüsseln sortiert wurden
  • Multimap: eine Sammlung von Schlüssel-Wert-Paaren, die anhand von Schlüsseln sortiert wurden
  • Satz: Einzigartige Schlüssel, die nach Schlüsseln gesammelt und geordnet werden.
  • Multiset: eine Sammlung von Schlüsseln, die nach Schlüsseln sortiert wurden

Beispiel

Um zu veranschaulichen, wie ein assoziativ Container funktioniert, wir werden das verwenden Klasse festlegen in diesem Beispiel.

#include
#include
Verwenden des Namensraums std;
int main ( )
{
// a initialisieren Satz von int Typ
Satz < int > Zahlen = { 10 , 2 , 16 , 70 , 5 } ;
// Drucken Sie die aus Satz
cout << „Zahlen sind:“ ;
für ( Auto & ich: nums )
{
cout << ich << ',' ;
}
zurückkehren 0 ;
}

Der obige Code initialisiert eine Reihe von Ganzzahlen in C++, was ein Beispiel für einen assoziativen Container ist. Das Set sorgt dafür, dass die Elemente standardmäßig in aufsteigender Reihenfolge sortiert werden. Der Code gibt dann die Zahlen im Satz mithilfe einer for-Schleife aus.

3: Ungeordnete assoziative Container

In C++, ungeordneter Assoziativ Behälter werden zur Bereitstellung der unsortierten Versionen eines verwendet assoziativ Container . Sie werden intern wie Hash-Tabellen-Datenstrukturen implementiert. Der assoziativ Behälter werden kategorisiert als:

  • Ungeordnete Karte: eine Sammlung von Schlüssel-Wert-Paaren, die mit eindeutigen Schlüsseln gehasht wurden.
  • Ungeordnete Multimap: die Sammlung von Schlüssel-Wert-Paaren, die mithilfe von Schlüsseln gehasht wurde.
  • Ungeordneter Satz: eine Sammlung eindeutiger Schlüssel, die mithilfe von Schlüsseln gehasht wurden.
  • Ungeordnetes Multiset: eine Sammlung von Schlüsseln, die mithilfe von Schlüsseln gehasht wurden.

Beispiel

Um zu veranschaulichen, wie ein ungeordneter Assoziativ Container funktioniert, wir werden das verwenden ungeordnete Menge Klasse in diesem Beispiel.

#include
#include
Verwenden des Namensraums std;
int main ( )
{
// Initialisiere einen unordered_set von int Typ
unordered_set < int > Zahlen = { 10 , 2 , 16 , 70 , 5 } ;
// Drucken Sie die aus Satz
cout << „Zahlen sind:“ ;
für ( Auto & ich: nums )
{
cout << ich << ',' ;
}
zurückkehren 0 ;
}

Abschluss

Ein STL C++ Container ist das Halterobjekt zum Speichern der Sammlung anderer Objekte. Sie funktionieren ähnlich wie Klassenvorlagen und unterstützen eine große Anzahl von Elementtypen. In diesem Tutorial haben wir die am häufigsten verwendeten Arten von STL-C++-Containern besprochen sequentielle Container, assoziative Container ebenso gut wie ungeordnete assoziative Container .