Apakah itu Kontena STL dalam C++

Apakah Itu Kontena Stl Dalam C



Dalam C++, STL (Perpustakaan Templat Standard), bekas ialah objek yang digunakan untuk menyimpan koleksi objek lain. Mereka berfungsi sama dengan templat kelas dan menyokong sejumlah besar jenis elemen dan menyediakan fungsi ahli untuk mengakses elemen mereka secara langsung atau melalui iterator.

Jenis-jenis Bekas STL C++

Dalam C++, terdapat tiga jenis STL bekas , yang disenaraikan di bawah:







1: Bekas Berjujukan

Dalam C++, bekas berjujukan membolehkan kami menyimpan item yang boleh diambil secara berurutan. Ini bekas dikodkan sebagai tatasusunan atau senarai terpaut struktur data. Beberapa jenis bekas berjujukan diberikan di bawah.



  • vektor: Ia adalah tatasusunan bersaiz dinamik yang disimpan dalam ingatan secara bersebelahan.
  • Tentang apa: Ia mewakili baris gilir dua hujung yang menyokong operasi untuk kedua-dua sisipan dan pemadaman.
  • Susunan: Ia adalah tatasusunan statik yang diperuntukkan semasa penyusunan sambil mengekalkan saiznya tetap.
  • Senarai: Ia ialah senarai berpaut dua kali yang melakukan pemasukan dan pemadaman pantas elemen di mana-mana tempat dalam senarai.
  • Senarai hadapan: Ia adalah senarai pautan tunggal seperti senarai tetapi anda hanya boleh melintasinya dalam satu arah.

Contoh



Dalam contoh ini, kita akan menggunakan kelas vektor untuk menunjukkan bagaimana a berurutan bekas beroperasi.





#include
#include
menggunakan ruang nama std;
int utama ( ) {
// mulakan vektor int menaip
vektor < int > nombor = { 10 , 2 , 16 , 70 , 5 } ;
// mencetak vektor
cout << 'Nombor ialah:' ;
untuk ( auto & i: nombor )
{
cout << i << ',' ;
}
kembali 0 ;
}

Kod di atas menunjukkan penggunaan berurutan bekas dalam format vektor, yang membolehkan penyimpanan tatasusunan integer. Program ini memulakan vektor jenis integer, memberikan nilai kepadanya, dan mencetaknya menggunakan gelung. Contoh ini menunjukkan betapa mudahnya untuk menyimpan dan mengakses data dalam C++ menggunakan bekas berurutan .



2: Bekas Bersekutu

Bekas bersekutu membolehkan kami menyimpan elemen dalam susunan tertentu yang ditakrifkan oleh pengendali perbandingan. Tidak seperti bekas berurutan , susunan unsur dalam bekas bersekutu diselenggara menggunakan kunci yang membolehkan pengguna mengatur dan mengakses elemen. Apabila elemen dimasukkan ke dalam bekas bersekutu , ia diisih secara automatik pada kedudukan yang betul berdasarkan kuncinya. Jenis bekas ini dilaksanakan secara dalaman seperti struktur data pokok binari.

The berpersatuan bekas dikategorikan sebagai:

  • Peta: koleksi pasangan nilai kunci yang telah diisih menggunakan kunci unik
  • Multimap: koleksi pasangan nilai kunci yang telah diisih menggunakan kekunci
  • Set: Kunci unik dikumpul dan disusun mengikut kekunci.
  • Berbilang set: koleksi kunci yang telah diisih menggunakan kekunci

Contoh

Untuk menggambarkan bagaimana an berpersatuan bekas berfungsi, kami akan menggunakan menetapkan kelas dalam contoh ini.

#include
#include
menggunakan ruang nama std;
int utama ( )
{
// mulakan a ditetapkan daripada int menaip
ditetapkan < int > nombor = { 10 , 2 , 16 , 70 , 5 } ;
// mencetak ditetapkan
cout << 'Nombor ialah:' ;
untuk ( auto & i: nombor )
{
cout << i << ',' ;
}
kembali 0 ;
}

Kod di atas memulakan set integer dalam C++, yang merupakan contoh bekas bersekutu. Set memastikan bahawa elemen diisih dalam tertib menaik secara lalai. Kod itu kemudian mencetak nombor dalam set menggunakan gelung for.

3: Bekas Bersekutu Tidak Teratur

Dalam C++, berpersatuan tidak teratur bekas digunakan untuk menyediakan versi unsorted an berpersatuan bekas . Ia dilaksanakan secara dalaman seperti struktur data jadual hash. The berpersatuan bekas dikategorikan sebagai:

  • Peta Tidak Tersusun: koleksi pasangan nilai kunci yang telah dicincang menggunakan kunci unik.
  • Multimap tidak tersusun: koleksi pasangan nilai kunci yang telah dicincang menggunakan kunci.
  • Set Tidak Tertib: koleksi kunci unik yang telah dicincang menggunakan kunci.
  • Berbilang Set Tidak Tertib: koleksi kunci yang telah dicincang menggunakan kunci.

Contoh

Untuk menggambarkan bagaimana an berpersatuan tidak teratur bekas berfungsi, kami akan menggunakan set tidak teratur kelas dalam contoh ini.

#include
#include
menggunakan ruang nama std;
int utama ( )
{
// mulakan set_unordered int menaip
unordered_set < int > nombor = { 10 , 2 , 16 , 70 , 5 } ;
// mencetak ditetapkan
cout << 'Nombor ialah:' ;
untuk ( auto & i: nombor )
{
cout << i << ',' ;
}
kembali 0 ;
}

Kesimpulan

STL C++ bekas ialah objek pemegang untuk menyimpan koleksi objek lain. Ia berfungsi sama dengan templat kelas dan menyokong sejumlah besar jenis elemen. Dalam tutorial ini, kami membincangkan jenis bekas STL C++ yang paling biasa digunakan, iaitu bekas berurutan, bekas bersekutu serta bekas bersekutu yang tidak teratur .