Què són els contenidors STL en C++

Que Son Els Contenidors Stl En C



En C++, STL (Biblioteca de plantilles estàndard), contenidors són objectes utilitzats per emmagatzemar les col·leccions dels altres objectes. Funcionen de manera similar a les plantilles de classe i admeten un gran nombre de tipus d'elements i proporcionen funcions de membre per accedir als seus elements directament o mitjançant iteradors.

Tipus de contenidors C++ STL

En C++, hi ha tres tipus de STL contenidors , que s'enumeren a continuació:







1: Contenidors seqüencials

En C++, els contenidors seqüencials ens permeten emmagatzemar elements que es poden recuperar de manera seqüencial. Aquests contenidors es codifiquen com a matrius o llistes enllaçades d'estructures de dades. A continuació es donen alguns tipus de contenidors seqüencials.



  • Vector: És una matriu de mida dinàmica que s'emmagatzema a la memòria de manera contigua.
  • Dec: Representa una cua de doble extrem que admet operacions tant per a la inserció com per a la supressió.
  • Matriu: És una matriu estàtica assignada durant la compilació mantenint la seva mida fixa.
  • Llista: És una llista doblement enllaçada que realitza una ràpida inserció i supressió d'elements en qualsevol lloc de la llista.
  • Llista de reenviaments: És una llista enllaçada individualment com una llista, però només podeu recórrer-la en una direcció.

Exemple



En aquest exemple, farem servir el classe vectorial per mostrar com a seqüencial contenidor opera.





#inclou
#inclou
utilitzant namespace std;
int principal ( ) {
// inicialitzar un vector de int tipus
vector < int > nombres = { 10 , 2 , 16 , 70 , 5 } ;
// imprimir el vector
cout << 'Els números són:' ;
per ( automàtic & i: núms )
{
cout << i << ', ' ;
}
tornar 0 ;
}

El codi anterior demostra l'ús de seqüencial contenidors en format vectorial, que permet l'emmagatzematge de matrius sencers. El programa inicialitza un vector de tipus enter, li assigna valors i els imprimeix mitjançant un bucle. Aquest exemple mostra com és fàcil emmagatzemar i accedir a les dades en C++ mitjançant l' contenidor seqüencial .



2: Contenidors Associatius

Els contenidors associatius ens permet emmagatzemar elements en l'ordre particular definit per l'operador de comparació. A diferència contenidors seqüencials , l'ordre dels elements en contenidors associatius es manté mitjançant claus que permeten als usuaris organitzar i accedir als elements. Quan s'insereix un element en un contenidor associatiu , s'ordena automàticament a la posició correcta en funció de la seva clau. Aquest tipus de contenidors s'implementen internament com estructures de dades d'arbre binari.

El associatiu contenidors es classifiquen com:

  • Mapa: una col·lecció de parells clau-valor que s'han ordenat mitjançant claus úniques
  • Multimapa: una col·lecció de parells clau-valor que s'han ordenat mitjançant claus
  • Conjunt: Claus úniques recollides i ordenades per claus.
  • Multiconjunt: una col·lecció de claus que s'han ordenat mitjançant claus

Exemple

Per il·lustrar com an associatiu contenidor funciona, farem servir el establir classe en aquest exemple.

#inclou
#inclou
utilitzant namespace std;
int principal ( )
{
// inicialitzar a conjunt d'int tipus
conjunt < int > nombres = { 10 , 2 , 16 , 70 , 5 } ;
// imprimir el conjunt
cout << 'Els números són:' ;
per ( automàtic & i: núms )
{
cout << i << ', ' ;
}
tornar 0 ;
}

El codi anterior inicialitza un conjunt d'enters en C++, que és un exemple de contenidor associatiu. El conjunt garanteix que els elements estiguin ordenats en ordre ascendent per defecte. A continuació, el codi imprimeix els números del conjunt mitjançant un bucle for.

3: Contenidors associatius no ordenats

En C++, associatiu no ordenat contenidors s'utilitzen per proporcionar les versions no ordenades d'un associatiu contenidor . S'implementen internament com estructures de dades de taula hash. El associatiu contenidors es classifiquen com:

  • Mapa no ordenat: una col·lecció de parells clau-valor que s'han dividit amb la funció resum mitjançant claus úniques.
  • Multimapa no ordenat: la col·lecció de parells clau-valor que s'ha fet amb la funció resum mitjançant claus.
  • Conjunt no ordenat: una col·lecció de claus úniques que s'han xifrat mitjançant claus.
  • Multiconjunt no ordenat: una col·lecció de claus que s'han dividit amb la funció resum mitjançant claus.

Exemple

Per tal d'il·lustrar com an associatiu no ordenat contenidor funciona, farem servir el conjunt no ordenat classe en aquest exemple.

#inclou
#include
utilitzant namespace std;
int principal ( )
{
// inicialitzar un conjunt_desordenat de int tipus
conjunt_desordenat < int > nombres = { 10 , 2 , 16 , 70 , 5 } ;
// imprimir el conjunt
cout << 'Els números són:' ;
per ( automàtic & i: núms )
{
cout << i << ', ' ;
}
tornar 0 ;
}

Conclusió

Un STL C++ contenidor és l'objecte titular per emmagatzemar la col·lecció d'altres objectes. Funcionen de manera similar a les plantilles de classe i admeten un gran nombre de tipus d'elements. En aquest tutorial, hem comentat els tipus de contenidors STL C++ més utilitzats, que són contenidors seqüencials, contenidors associatius així com contenidors associatius no ordenats .