C++'da STL Konteynerleri nedir?

C Da Stl Konteynerleri Nedir



C++'da, STL (Standart Şablon Kitaplığı), konteynerler diğer nesnelerin koleksiyonlarını depolamak için kullanılan nesnelerdir. Sınıf şablonlarına benzer şekilde çalışırlar ve çok sayıda öğe türünü desteklerler ve üye işlevlerin öğelerine doğrudan veya yineleyiciler aracılığıyla erişmesini sağlarlar.

C++ STL Konteyner Türleri

C++'da üç tür STL vardır konteynerler , aşağıda listelenmiştir:







1: Sıralı Konteynerler

C++'da sıralı kaplar, sıralı olarak alınabilen öğeleri saklamamızı sağlar. Bunlar konteynerler diziler veya veri yapılarının bağlantılı listeleri olarak kodlanır. Bazı sıralı kap türleri aşağıda verilmiştir.



  • Vektör: Bellekte bitişik bir şekilde depolanan dinamik olarak boyutlandırılmış bir dizidir.
  • Ne hakkında: Hem ekleme hem de silme işlemlerini destekleyen çift uçlu bir kuyruğu temsil eder.
  • Sıralamak: Derleme sırasında boyutunu sabit tutarken ayrılan statik bir dizidir.
  • Liste: Listedeki herhangi bir yere öğelerin hızlı bir şekilde eklenmesini ve silinmesini gerçekleştiren çift bağlantılı bir listedir.
  • İleri Liste: Liste gibi tek bağlantılı bir listedir, ancak onu yalnızca bir yönde hareket ettirebilirsiniz.

Örnek



Bu örnekte, vektör sınıfı nasıl olduğunu göstermek için ardışık konteyner çalışır.





#include
#include
ad alanı std kullanarak;
int ana ( ) {
// int vektörünü başlat tip
vektör < int > sayılar = { 10 , 2 , 16 , 70 , 5 } ;
// vektörü yazdır
cout << 'Sayılar: ' ;
için ( Oto & ben: rakamlar )
{
cout << Ben << ', ' ;
}
geri dönmek 0 ;
}

Yukarıdaki yukarıdaki kod, kullanımını gösterir. ardışık konteynerler tamsayı dizilerinin depolanmasına izin veren vektör formatında. Program, tamsayı türünde bir vektör başlatır, ona değerler atar ve bunları bir döngü kullanarak yazdırır. Bu örnek, C++ kullanarak verileri depolamanın ve bunlara erişmenin ne kadar kolay olduğunu gösterir. sıralı konteyner .



2: İlişkili Konteynerler

ilişkisel kapsayıcılar öğeleri karşılaştırma operatörü tarafından tanımlanan belirli sırada saklamamıza izin verir. Farklı sıralı kaplar , öğelerin sırası ilişkisel kaplar kullanıcıların öğeleri düzenlemesine ve öğelere erişmesine izin veren anahtarlar kullanılarak korunur. İçine bir eleman eklendiğinde ilişkisel konteyner , anahtarına göre otomatik olarak doğru konumda sıralanır. Bu tür kaplar, ikili ağaç veri yapıları gibi dahili olarak uygulanır.

bu çağrışımsal konteynerler olarak kategorize edilir:

  • Harita: benzersiz anahtarlar kullanılarak sıralanmış anahtar/değer çiftleri koleksiyonu
  • çoklu harita: anahtarlar kullanılarak sıralanmış bir anahtar-değer çiftleri koleksiyonu
  • Ayarlamak: Anahtarlar tarafından toplanan ve düzenlenen benzersiz anahtarlar.
  • çoklu küme: anahtarlar kullanılarak sıralanmış bir anahtar koleksiyonu

Örnek

nasıl olduğunu göstermek için çağrışımsal konteyner çalışır, kullanacağız sınıf ayarla bu örnekte

#include
#include
ad alanı std kullanarak;
int ana ( )
{
// bir başlatmak ayarlamak int'nin tip
ayarlamak < int > sayılar = { 10 , 2 , 16 , 70 , 5 } ;
// yazdır ayarlamak
cout << 'Sayılar: ' ;
için ( Oto & ben: rakamlar )
{
cout << Ben << ', ' ;
}
geri dönmek 0 ;
}

Yukarıdaki kod, bir ilişkisel konteyner örneği olan C++'da bir tamsayı kümesini başlatır. Set, öğelerin varsayılan olarak artan düzende sıralanmasını sağlar. Kod daha sonra bir for döngüsü kullanarak kümedeki sayıları yazdırır.

3: Sırasız İlişkili Konteynerler

C++'da, sırasız çağrışımsal konteynerler bir dizinin sıralanmamış sürümlerini sağlamak için kullanılır. çağrışımsal konteyner . Karma tablo veri yapıları gibi dahili olarak uygulanırlar. bu çağrışımsal konteynerler olarak kategorize edilir:

  • Sırasız Harita: benzersiz anahtarlar kullanılarak hashing işlemi uygulanmış anahtar/değer çiftlerinden oluşan bir koleksiyon.
  • Sırasız Çoklu Harita: anahtarlar kullanılarak karma oluşturulmuş anahtar-değer çiftleri koleksiyonu.
  • Sırasız Küme: anahtarlar kullanılarak özetlenmiş benzersiz anahtarlardan oluşan bir koleksiyon.
  • Sırasız Çoklu Küme: anahtarlar kullanılarak özetlenmiş bir anahtar koleksiyonu.

Örnek

nasıl olduğunu göstermek için sırasız çağrışımsal konteyner çalışır, kullanacağız sırasız küme Bu örnekte sınıf.

#include
#include
ad alanı std kullanarak;
int ana ( )
{
// bir unordered_set of int başlat tip
unordered_set < int > sayılar = { 10 , 2 , 16 , 70 , 5 } ;
// yazdır ayarlamak
cout << 'Sayılar: ' ;
için ( Oto & ben: rakamlar )
{
cout << Ben << ', ' ;
}
geri dönmek 0 ;
}

Çözüm

Bir STL C++ konteyner diğer nesnelerin koleksiyonunu depolamak için tutucu nesnedir. Sınıf şablonlarına benzer şekilde çalışırlar ve çok sayıda öğe türünü desteklerler. Bu öğreticide, en sık kullanılan STL C++ kapsayıcı türlerini tartıştık. sıralı kaplar, ilişkisel kaplar birlikte sırasız ilişkisel konteynerler .