stl kapsayıcılar
Standart şablon kitaplığı (stl), birbiriyle ilişkili nesneler topluluklarını depolamak için çok kapsayıcı sağlar.Hangi nesneleri kaplarında izin verileceğini belirtmek sağlayarak tüm şablon sınıfları kaplardır.Bu konu, stl kapsayıcıları hangi kapsayıcı gereksinimleriniz için en iyi karar vermenize yardımcı olacak genel bir bakış sağlar.
İçinden seçim yapabileceğiniz iki stl kitaplık vardır: yerel stl ve stl/clr.stl/clr hakkında daha fazla bilgi için bkz: stl/clr Kitaplık Başvurusu.
stl kaplarında üç kategori, sıra kapsayıcıları, ilişkilendirilebilir kapsayıcılar ve kapsayıcı bağdaştırıcıları ayrılabilir.Bu kategoriler ve her kategoriye ait toplulukları burada özetlenmektedir.Daha ayrıntılı bilgi kapsayıcıları için başvuru belgelerinde bulunabilir.
Sıra kapsayıcı
Özgün eklenen öğeleri sıralama sırası kapsayıcı korur.Böylece kapsayıcı öğe eklemek istediğiniz yeri belirtin.
deque Hızlı eklemeler ve silmeler başında ve sonunda kapsayıcısının (çift uçlu sıra) kapsayıcı sağlar.Herhangi bir öğeyi hızlı bir şekilde de rastgele erişebilirsiniz.
list Hızlı eklemeler ve silmeler kapsayıcı herhangi bir yerindeki kapsayıcı sağlar, ancak rastgele bir öğe konteynerindeki erişemiyor.
vector Kapsayıcı bir dizi gibi davranan, ancak otomatik olarak genişlemesi gerektiği gibi.
Sıra kapsayıcıları hakkında daha fazla bilgi için aşağıdaki tabloya bakın:
Kapsayıcı |
Doğal stl |
STL/CLR |
---|---|---|
deque |
||
list |
||
vector |
İlişkilendirilebilir kapsayıcılar
Öğeleri artan şekilde sıralanmış bir önceden tanımlanmış sırayla eklenir ilişkilendirilebilir kapsayıcıları tanımlayıcı özelliğidir olur.
İlişkilendirilebilir kapsayıcıları iki alt kümeleri gruplandırılabilir: eşler ve ayarlar.A map, bazen bir sözlük başvurulan, bir anahtar/değer çiftinden oluşur.Sıra sipariş etmek için bu anahtar kullanılır ve bir şekilde bu anahtarla ilişkili değerdir.Örneğin, bir map temsil eden bir metni ve değerleri word metin görünür sayısını temsil eden benzersiz her sözcüğü tuşlarını içerebilir.A set sadece benzersiz öğelerini artan bir kapsayıcı.
Her ikisi de map ve set sadece bir anahtar veya kapsayıcıya eklenecek öğe bir örneğini izin.Öğeleri birden çok örneğini gerekli olduğunda kullanın multimap veya multiset.
Hem eşleştirir ve Destek çift yönlü Yineleyicilerde ayarlar.Yineleyicilerde hakkında daha fazla bilgi için bkz: Iterators.
stl standart olmayan resmi bir parçası sırasında hash_map ve hash_set arama süresini kısaltmak için yaygın olarak kullanılır.Bu kapsayıcılar öğelerini çift yönlü bağlantılı liste öğelerini içeren her Tablo girdisiyle karma tablo olarak depolar.Hızlı arama süreleri sağlamak için öğeleriniz için karma algoritmasını eşit olarak dağıtılmış bir karma değer döndürdüğünden emin olun.
İlişkilendirilebilir kapları hakkında daha fazla bilgi için aşağıdaki tabloya bakın:
Kapsayıcı |
Doğal stl |
STL/CLR |
---|---|---|
hash_map |
||
hash_multimap |
||
hash_multiset |
||
hash_set |
||
map |
||
multimap |
||
multiset |
||
set |
Kapsayıcı bağdaştırıcıları
Sadece Yukarıdaki kap çeşidi kapsayıcı bağdaştırıcılarıdır.Kapsayıcı bağdaştırıcıları Yineleyicilerde desteklemez.
priority_queue Kapsayıcı öğe en yüksek değeri her zaman ilk sırada olacak şekilde düzenlenmiş.
queue Kapsayıcı FIFO (ilk giren ilk çıkar) semantiği aşağıdaki gibidir.Eklenen ilk (sıraya itilmiş) kaldırılacak (popped) ilk öğedir.
stack Kapsayıcı LIFO (son giren ilk çıkar) semantiği aşağıdaki gibidir.Eklenecek son öğe (yığına) kaldırılacak (popped) ilk öğedir.
Yineleyicilerde kapsayıcı bağdaştırıcıları desteği olmayan bu yana stl algoritmaları ile kullanılamaz.Algoritmalar hakkında daha fazla bilgi için bkz: Algoritmalara.
Kapsayıcı bağdaştırıcıları hakkında daha fazla bilgi için aşağıdaki tabloya bakın:
Kapsayıcı |
Doğal stl |
STL/CLR |
---|---|---|
priority_queue |
||
queue |
||
stack |
Kap öğeleri için gereksinimler
stl kapsayıcıya eklenen öğeleri ortak kopya kurucu, ortak bir yıkıcı ve ortak atama işleci sağlayan herhangi bir nesne türü olabilir.Yıkıcı bir istisna değil.Üstelik ilişkilendirilebilir kapsayıcıları gibi set ve map işleci olan ortak karşılaştırma işleci, tanımlı olmalıdır < Varsayılan olarak.Kapsayıcı üzerinde bazı işlemler de genel varsayılan bir oluşturucusu ve ortak eşdeğerlik işleci gerektirebilir.
Kap öğeleri erişme
Kap öğeleri Yineleyicilerde kullanılarak erişilir.Daha fazla bilgi için bkz. Iterators.
[!NOT]
Ayrıca Her, içinde stl Koleksiyonlar üzerinde dolaşmak için.Daha fazla bilgi için bkz. Nasıl yapılır: her stl koleksiyonu ile üzerinden yineleme.