Čo sú kontajnery STL v C++

Co Su Kontajnery Stl V C



V C++, STL (štandardná knižnica šablón), kontajnerov sú objekty používané na ukladanie zbierok iných objektov. Fungujú podobne ako šablóny tried a podporujú veľké množstvo typov prvkov a poskytujú členské funkcie na prístup k ich prvkom priamo alebo cez iterátory.

Typy C++ STL kontajnerov

V C++ existujú tri typy STL kontajnerov , ktoré sú uvedené nižšie:







1: Sekvenčné kontajnery

V C++ nám sekvenčné kontajnery umožňujú ukladať položky, ktoré je možné získať postupne. Títo kontajnerov sú zakódované ako polia alebo prepojené zoznamy dátových štruktúr. Niektoré typy sekvenčných kontajnerov sú uvedené nižšie.



  • vektor: Ide o pole dynamickej veľkosti, ktoré je uložené v pamäti súvislým spôsobom.
  • O čom: Predstavuje obojstranný front, ktorý podporuje operácie pre vkladanie aj mazanie.
  • Pole: Je to statické pole pridelené počas kompilácie, pričom jeho veľkosť je stále pevná.
  • zoznam: Je to dvojito prepojený zoznam, ktorý vykonáva rýchle vkladanie a odstraňovanie prvkov na ľubovoľnom mieste v zozname.
  • Dopredný zoznam: Je to jednoducho prepojený zoznam ako zoznam, ale môžete ho prechádzať iba jedným smerom.

Príklad



V tomto príklade použijeme vektorová trieda ukázať ako a sekvenčné kontajner prevádzkuje.





#include
#include
pomocou menného priestoru std;
int main ( ) {
// inicializovať vektor int typu
vektor < int > čísla = { 10 , 2 , 16 , 70 , 5 } ;
// vytlačte vektor
cout << 'Čísla sú:' ;
pre ( auto & i: nums )
{
cout << i << ',' ;
}
vrátiť 0 ;
}

Vyššie uvedený kód demonštruje použitie sekvenčné kontajnerov vo vektorovom formáte, ktorý umožňuje ukladanie celočíselných polí. Program inicializuje vektor typu integer, priradí mu hodnoty a vytlačí ich pomocou slučky. Tento príklad ukazuje, ako je ľahké ukladať a pristupovať k údajom v C++ pomocou sekvenčný kontajner .



2: Asociatívne kontajnery

Asociačné kontajnery nám umožňujú ukladať prvky v konkrétnom poradí definovanom operátorom porovnávania. Na rozdiel od sekvenčné kontajnery , poradie prvkov v asociatívne kontajnery sa udržiava pomocou kľúčov, ktoré umožňujú používateľom organizovať prvky a pristupovať k nim. Keď je prvok vložený do asociatívny kontajner , automaticky sa zoradí na správnu pozíciu podľa svojho kľúča. Tieto typy kontajnerov sú implementované interne ako binárne stromové dátové štruktúry.

The asociatívne kontajnerov sú kategorizované ako:

  • Mapa: kolekcia párov kľúč – hodnota, ktoré boli zoradené pomocou jedinečných kľúčov
  • Multimap: kolekcia párov kľúč – hodnota, ktoré boli zoradené pomocou kľúčov
  • Nastaviť: Jedinečné kľúče zhromaždené a usporiadané podľa kľúčov.
  • Viacnásobná množina: kolekcia kľúčov, ktoré boli triedené pomocou kľúčov

Príklad

Pre ilustráciu ako an asociatívne kontajner funguje, budeme používať nastaviť triedu v tomto príklade.

#include
#include
pomocou menného priestoru std;
int main ( )
{
// inicializovať a nastaviť z int typu
nastaviť < int > čísla = { 10 , 2 , 16 , 70 , 5 } ;
// vytlačiť nastaviť
cout << 'Čísla sú:' ;
pre ( auto & i: nums )
{
cout << i << ',' ;
}
vrátiť 0 ;
}

Vyššie uvedený kód inicializuje množinu celých čísel v C++, čo je príklad asociatívneho kontajnera. Sada zabezpečuje, že prvky sú štandardne zoradené vo vzostupnom poradí. Kód potom vytlačí čísla v súprave pomocou slučky for.

3: Neusporiadané asociatívne kontajnery

V C++, neusporiadaný asociatív kontajnerov sa používajú na poskytovanie netriedených verzií an asociatívne kontajner . Sú interne implementované ako dátové štruktúry hašovacích tabuliek. The asociatívne kontajnerov sú kategorizované ako:

  • Neusporiadaná mapa: kolekcia párov kľúč – hodnota, ktoré boli hašované pomocou jedinečných kľúčov.
  • Neusporiadaná multimapa: kolekciu párov kľúč – hodnota, ktorá bola hašovaná pomocou kľúčov.
  • Neobjednaná sada: kolekcia jedinečných kľúčov, ktoré boli hašované pomocou kľúčov.
  • Neusporiadaná multimnožina: kolekcia kľúčov, ktoré boli hašované pomocou kľúčov.

Príklad

Aby sme ilustrovali, ako an neusporiadaný asociatív kontajner funguje, budeme používať neusporiadaná sada triedy v tomto príklade.

#include
#include
pomocou menného priestoru std;
int main ( )
{
// inicializovať neusporiadanú množinu int typu
unordered_set < int > čísla = { 10 , 2 , 16 , 70 , 5 } ;
// vytlačiť nastaviť
cout << 'Čísla sú:' ;
pre ( auto & i: nums )
{
cout << i << ',' ;
}
vrátiť 0 ;
}

Záver

STL C++ kontajner je držiteľom objektu na uloženie zbierky iných predmetov. Fungujú podobne ako šablóny tried a podporujú veľké množstvo typov prvkov. V tomto návode sme rozobrali najčastejšie používané typy kontajnerov STL C++, ktorými sú sekvenčné kontajnery, asociatívne kontajnery ako aj neusporiadané asociatívne kontajnery .