Ce sunt containerele STL în C++

Ce Sunt Containerele Stl In C



În C++, STL (Bibliotecă de șabloane standard), containere sunt obiecte folosite pentru a stoca colecțiile celorlalte obiecte. Ele funcționează în mod similar cu șabloanele de clasă și acceptă un număr mare de tipuri de elemente și oferă funcții membre pentru a accesa elementele lor direct sau prin iteratoare.

Tipuri de containere C++ STL

În C++, există trei tipuri de STL containere , care sunt enumerate mai jos:







1: Containere secvențiale

În C++, containerele secvenţiale ne permit să stocăm articole care pot fi recuperate secvenţial. Aceste containere sunt codificate ca matrice sau liste legate de structuri de date. Unele tipuri de containere secvenţiale sunt prezentate mai jos.



  • Vector: Este o matrice de dimensiuni dinamice care este stocată în memorie într-o manieră contiguă.
  • Despre ce: Reprezintă o coadă dublă care acceptă operațiuni atât pentru inserare, cât și pentru ștergere.
  • Matrice: Este o matrice statică alocată în timpul compilării, păstrându-și dimensiunea fixă.
  • Listă: Este o listă dublu legată care efectuează inserarea și ștergerea rapidă a elementelor în orice loc din listă.
  • Lista de redirecționare: Este o listă unică, ca o listă, dar o puteți parcurge doar într-o singură direcție.

Exemplu



În acest exemplu, vom folosi clasa vectoriala pentru a arăta cum a secvenţial recipient opereaza.





#include
#include
folosind namespace std;
int principal ( ) {
// inițializați un vector de int tip
vector < int > numere = { 10 , 2 , 16 , 70 , 5 } ;
// tipăriți vectorul
cout << „Numerele sunt:” ;
pentru ( auto & i: numere )
{
cout << i << ', ' ;
}
întoarcere 0 ;
}

Codul de mai sus demonstrează utilizarea lui secvenţial containere în format vectorial, care permite stocarea matricelor întregi. Programul inițializează un vector de tip întreg, îi atribuie valori și le imprimă folosind o buclă. Acest exemplu arată cât de ușor este stocarea și accesarea datelor în C++ folosind container secvenţial .



2: Containere asociative

Containerele asociative ne permit să stocăm elemente în ordinea specifică definită de operatorul de comparație. Spre deosebire de containere secvențiale , ordinea elementelor în recipiente asociative este întreținut folosind chei care permit utilizatorilor să organizeze și să acceseze elementele. Când un element este introdus într-un recipient asociativ , este sortat automat în poziția corectă în funcție de cheie. Aceste tipuri de containere sunt implementate intern ca structurile de date din arbore binar.

The asociativ containere sunt clasificate ca:

  • Hartă: o colecție de perechi cheie-valoare care au fost sortate folosind chei unice
  • Hartă multiplă: o colecție de perechi cheie-valoare care au fost sortate folosind chei
  • A stabilit: Chei unice colectate și aranjate după chei.
  • Multiset: o colecție de chei care au fost sortate folosind chei

Exemplu

Pentru a ilustra modul în care an asociativ recipient funcționează, vom folosi setați clasa în acest exemplu.

#include
#include
folosind namespace std;
int principal ( )
{
// inițializați a a stabilit de int tip
a stabilit < int > numere = { 10 , 2 , 16 , 70 , 5 } ;
// tipăriți a stabilit
cout << „Numerele sunt:” ;
pentru ( auto & i: numere )
{
cout << i << ', ' ;
}
întoarcere 0 ;
}

Codul de mai sus inițializează un set de numere întregi în C++, care este un exemplu de container asociativ. Setul asigură că elementele sunt sortate în ordine crescătoare în mod implicit. Codul tipărește apoi numerele din set folosind o buclă for.

3: Containere asociative necomandate

În C++, asociativ neordonat containere sunt utilizate pentru furnizarea versiunilor nesortate ale unui asociativ recipient . Ele sunt implementate intern ca structurile de date de tabel hash. The asociativ containere sunt clasificate ca:

  • Hartă neordonată: o colecție de perechi cheie-valoare care au fost indexate folosind chei unice.
  • Multihartă neordonată: colecția de perechi cheie-valoare care a fost indexată folosind chei.
  • Set necomandat: o colecție de chei unice care au fost indexate folosind chei.
  • Multiset necomandat: o colecție de chei care au fost indexate folosind chei.

Exemplu

Pentru a ilustra modul în care an asociativ neordonat recipient funcționează, vom folosi set neordonat clasa din acest exemplu.

#include
#include
folosind namespace std;
int principal ( )
{
// inițializați un set neordonat de int tip
set_neordonat < int > numere = { 10 , 2 , 16 , 70 , 5 } ;
// tipăriți a stabilit
cout << „Numerele sunt:” ;
pentru ( auto & i: numere )
{
cout << i << ', ' ;
}
întoarcere 0 ;
}

Concluzie

Un STL C++ recipient este obiectul deținător pentru a stoca colecția altor obiecte. Ele funcționează în mod similar cu șabloanele de clasă și acceptă un număr mare de tipuri de elemente. În acest tutorial, am discutat despre cele mai utilizate tipuri de containere STL C++, care sunt containere secvențiale, containere asociative precum și containere asociative neordonate .