hash_multiset Class
Not
Bu API artık kullanılmıyor.Alternatif unordered_multiset Class.
Kapsayıcı sınıfı hash_multiset, standart Şablon Kütüphanesi'nin bir uzantısıdır ve depolama ve veri içerdiği öğelerin değerlerini anahtar değerleri olarak hizmet veren ve benzersiz olması gerekmez, bir koleksiyondan hızlı alma için kullanılır.
template <
class Key,
class Traits=hash_compare<Key, less<Key> >,
class Allocator=allocator<Key>
>
class hash_multiset
Parametreler
Tuş
Hash_multiset içinde depolanan öğe veri türü.Traits
İki işlev nesneleri içeren, bir sınıf karşılaştırma türü olan bir ikili karşılaştırma bunların göreceli sırası ve anahtar değerleri işaretsiz tamsayı türünde öğe eşleme birli koşul olan karma işlevi belirlemek için sıralama anahtarları olarak iki öğe değerleri karşılaştırmak için size_t. Bu bağımsız değişkeni isteğe bağlıdır ve hash_compare*< anahtarı,* az*<Key> >* varsayılan değerdir.Allocator
Hash_multiset's ayırma ve bellek ayırmayı kaldırma hakkındaki ayrıntıları saklar saklı ayırıcı nesnesini gösteren türü. Bu bağımsız değişkeni isteğe bağlıdır ve varsayılan değer olan ayırıcı*<Key>.*
Notlar
Hash_multiset aşağıdaki gibidir:
Bir değişken boyutu kapsayıcı öğe değerlerinin verimli alınmasını destekler ilişkili bir anahtar değerine dayalı bir ilişkilendirilebilir container. Ayrıca, öğe değerlerini, anahtar değerlerinin nedeni Basit ilişkilendirilebilir bir kapsayıcı olmalarıdır.
Geri alınamaz, çünkü onun öğelerine erişmek için çift yönlü Yineleyici sağlar.
Karma, çünkü kendi öğeleri öğelerinin anahtar değerleri için uygulanan bir karma işlev değerini temel alarak demetleri halinde gruplandırılır.
Alt öğelerin her biri benzersiz bir anahtar sahip anlamda benzersiz. Hash_multiset de basit ilişkilendirilebilir bir kapsayıcı, çünkü kendi öğeleri de eşsizdir.
İşlevi sağladığından şablon sınıfı genel ve böylece bağımsız olarak belirli öğelerini veya anahtarları olarak yer alan veri türü. Öğeleri ve anahtarları için kullanılacak veri türleri yerine, parametre sınıf şablonu ve karşılaştırma işlevi ve ayırıcı olarak belirtilir.
Sıralama üzerinden karma başlıca faydası daha verimli olur: başarılı karma gerçekleştirir eklemeler, silmeler ve karşın bir süre sabit ortalama süre içinde teknikleri sıralamak için kapsayıcı öğe sayısına göre logaritması orantılı bulur. Bir kayıt kümesindeki bir öğenin değerini doğrudan değiştirilemez. Bunun yerine, eski değerleri silin ve yeni değerlerle öğeleri ekleyin.
Kapsayıcı türü seçimi genel arama türü esas alınması gereken ve uygulama tarafından gerekli ekleme. Karma ilişkilendirilebilir kapsayıcıları arama, ekleme ve kaldırma işlemleri için optimize edilmiştir. Bu işlemler açıkça destek üye işlevleri ortalama sabit ve konteynerdeki öğelerin sayısını bağımlı olmayan bir süre içinde gerçekleştirilmeden iyi tasarlanmış karma işlevi, birlikte kullanıldığında etkilidir. İyi tasarlanmış karma işlevi uniform bir dağılım karma değer üreten ve Çarpışmaları, burada bir çarpışma DISTINCT anahtar değerleri, aynı karma değere eşleştirildiğinde gerçekleştirilmiş olur sayısını en aza indirir. En kötü durumda, en kötü olası karma işlevi ile tamamlanmış işlem sayısı (doğrusal zaman) dizideki öğelerin sayısı orantılıdır.
Hash_multiset değerleri kendi anahtarları ile ilişkilendirerek koşullar olduğunda istediği ilişkilendirilebilir kapsayıcı uygulama tarafından karşılayan gerekir. Öğeleri bir hash_multiset, birden çok ve anahtarlar benzersiz değildir böylece kendi sıralama anahtarı olarak hizmet olabilir. Bir yapı bu tür sıralı bir listesini, sözcüklerin birden çok kez oluşabilir sözcükleri söyleyin, modelidir. Sonra da bir hash_set uygun kapsayıcı yapıyı olabilirdi birden fazla sözcük, izin değil. Tanımları benzersiz değerler olarak benzersiz anahtar sözcükler listesine eklenmedi, sonra bir hash_map bu verileri içerecek şekilde uygun bir yapı olacaktır. Bunun yerine tanımları benzersiz değil, sonra bir hash_multimap seçim kapsayıcı olurdu.
Hash_multiset sırasını denetler saklı karma Nitelikler nesnesi türü çağırarak siparişleri value_compare. Bu saklı nesne üye işlevini çağırarak erişilebileceği key_comp. Böyle bir işlev nesne sınıfın bir nesnesi ile aynı davranır gerekir hash_compare*< anahtarı,* az*<Key> >.* Tüm değerler için özellikle anahtar türü anahtar, çağrı ayırdedici nitelik(anahtar) türü değerleri dağıtımını gözüken size_t.
Genel olarak, öğeleri yalnızca küçüktür bu sırayı oluşturmak için karşılaştırılabilir: herhangi iki öğe verilen böylece, onu (içinde her ikisi de diğer küçüktür anlamda) eşdeğer veya diğer daha az olduğunu belirlenebilir. Bu bir nonequivalent öğeleri sıralamada sonuçlanır. Daha fazla Teknik Not üzerinde katı bir zayıf standart matematiksel anlamda sipariş işleminiz ikili bir karşılaştırma karşılaştırma işlevidir. İkili karşılaştırma f(x,y), iki bağımsız değişken nesneleri olan bir işlevi nesnesidir ve x ve y dönüş değeri true veya false. İkili karşılaştırma dönüşsüz, ters ve geçişli ve eşdeğerlik geçişli, iki yerde nesneleri sıralamaya sıkı bir zayıf olduğu bir hash_multiset üzerinde uygulanan bir sıralama x ve y ne zaman eşdeğer olarak tanımlanan her ikisi de f(x,y) ve f(y,x) yanlış ise. Anahtarlar arasındaki eşitlik daha güçlü koşulu, eşdeğerlik geçiyorsa, sipariş toplam (içinde birbirlerine göre sıralanmış tüm öğeleri algılama) olur ve eşleşen anahtarları birbirinden indiscernible.
Karma işlevi, sıralama işlevi ve geçerli kapsayıcı nesnesinde saklanan karma tablo boyutu gerçek kontrollü dizideki öğelerin sırasını bağlıdır. Böylece genel kontrollü dizideki öğelerin sırasını tahmin edemezsiniz geçerli karma tablo boyutu belirlenemiyor. Öğeleri ekleme yok yineleyiciler geçersiz kılar ve yalnızca özellikle sırasında kaldırılan öğeleri işaret ettiği yineleyiciler öğeleri kaldırma geçersiz kılar.
Hash_multiset sınıfı tarafından sağlanan sınıf üye işlevlerini ancak bir çift yönlü Yineleyici yineleyicidir Ekle ve hash_multiset çift yönlü yineleyiciler sınıfı tarafından garanti olandan daha az olan işlevselliği gereksinimleri daha zayıf giriş Yineleyici şablon parametresi ele sürümlere sahip. Farklı bir yineleyici kavramları tarafından iyileştirme işlevlerine içinde ilgili aile oluştururlar. Kendi hash_multiset gereksinimlerin her Yineleyici kavramı vardır ve bunlarla algoritmaları varsayımlarıyla Yineleyici türü tarafından sağlanan gereksinimlerine sınırlamak gerekir. Bu, bazı nesnesine başvurmak için bir giriş Yineleyici veta ve bunun için sıradaki sonraki Yineleyici 'er olduğunu kabul. Bu işlevselliğin en az bir hash_multiset, ancak satıcının yineleyiciler aralığı hakkında konuşmak yapabilmek için yeterli olan [_First, _Last) sınıf üye işlevleri bağlamında.
Visual C++ .NET 2003, üyeleri de <hash_map> ve <hash_set> başlık dosyaları artık std ad alanında bulunan, ancak bunun yerine stdext ad alanına taşınmış. Bkz: ad stdext daha fazla bilgi için.
Oluşturucular
Oluşturan bir hash_multiset yani boş veya yani bir kopyasını tüm veya bazı diğer parçası hash_multiset. |
TypeDef
Temsil eden bir tür allocator için sınıf hash_multiset nesne. |
|
Çift yönlü Yineleyici, can sağlayan bir tür okuma bir const öğesinde hash_multiset. |
|
Bir işaretçi sağlar bir tür bir const öğesinde bir hash_multiset. |
|
Bir başvuru sağlayan bir tür bir const öğesinde depolanan bir hash_multiset okumak ve gerçekleştirmek için const işlemleri. |
|
Herhangi bir çift yönlü Yineleyici, can sağlayan bir türü okuma const öğesinde hash_multiset. |
|
Öğeleri içinde aynı adres iki yineleyiciler arasındaki fark sağlayan bir imzalı tamsayı türü hash_multiset. |
|
Çift yönlü Yineleyici sağlayan bir tür okuma veya herhangi bir öğe olarak değiştirmek bir hash_multiset. |
|
İki öğe içinde göreli sırasını belirlemek için iki sýralama anahtarýný karşılaştıran işlev nesne sağlayan bir türü hash_multiset. |
|
Açıklayan bir öğesi olarak depolanan bir nesne türü bir hash_set sıralama anahtarı olarak kendi kapasite. |
|
Bir öğe için bir işaretçi sağlar bir tür bir hash_multiset. |
|
Depolanan bir öğeye başvuru sağlayan bir tür bir hash_multiset. |
|
Çift yönlü Yineleyici sağlayan bir tür okuma veya değiştirme tersine çevrilmiş bir öğe hash_multiset. |
|
İçindeki öğelerin sayısını gösteren bir işaretsiz tamsayı türü bir hash_multiset. |
|
İki işlev nesneleri, iki öğe değerlerini karşılaştırabilirsiniz sınıf karşılaştırma, ikili bir karşılaştırma sağlar bir tür bir hash_multiset göreli belirlemek için sipariş ve birli öğeleri elindeki koşul. |
|
Açıklayan bir öğesi olarak depolanan bir nesne türü bir hash_multiset değeri olarak kendi kapasite. |
Üye işlevleri
İlk öğe gideren bir yineleyici döndürür hash_multiset. |
|
İlk öğe adresleme const bir yineleyici döndürür hash_multiset. |
|
İzleyen'deki son öğe konumu adresleri const bir yineleyici döndürür bir hash_multiset. |
|
Tüm öğeleri siler bir hash_multiset. |
|
İçindeki öğelerin sayısını verir bir hash_multiset parametresi tarafından belirtilen anahtar anahtar eşleşen |
|
İlk öğe tersine çevrilmiş bir adresleme const bir yineleyici döndürür hash_multiset. |
|
Tersine çevrilmiş bir'deki son öğe izleyen konum adresleri const bir yineleyici döndürür hash_multiset. |
|
Yerlerine içinde yapılandırılan bir öğe ekler bir hash_multiset. |
|
Yerlerine içinde yapılandırılan bir öğe ekler bir hash_multiset, yerleştirme İpucu ile. |
|
Testleri, bir hash_multiset boş. |
|
İzleyen'deki son öğe konumu gideren bir yineleyici döndürür bir hash_multiset. |
|
Yineleyicilerde çiftinin sırasıyla ilk öğe dönen bir hash_multiset belirtilen anahtar ve ilk öğe için büyük bir anahtarla hash_multiset anahtar daha büyük veya eşit bir anahtara sahip. |
|
Bir öğe veya öğeleri aralığı kaldırır bir hash_multiset belirtilen pozisyonları veya belirtilen anahtar eşleşen öğeleri kaldırır. |
|
Bir öğe konumunu adresleme bir yineleyici döndürür bir hash_multiset , belirtilen anahtar için eşdeğer bir anahtarı vardır. |
|
Bir kopyasını verir allocator nesnesini oluşturmak için kullanılan hash_multiset. |
|
Bir öğe veya öğe aralığı ekler bir hash_multiset. |
|
Sipariş anahtarları için kullanılan karşılaştırma nesnenin bir kopyasını alır bir hash_multiset. |
|
İlk öğe için bir yineleyici döndürür bir hash_multiset ile belirtilen anahtar daha büyük veya eşit olan bir anahtar. |
|
En fazla uzunluğunu döner hash_multiset. |
|
İlk öğe tersine çevrilmiş bir adresleme bir yineleyici döndürür hash_multiset. |
|
Tersine çevrilmiş bir'deki son öğe izleyen konum gideren bir yineleyici döndürür hash_multiset. |
|
İçindeki öğelerin sayısını verir hash_multiset. |
|
İki öğe değişimi hash_multisets. |
|
İlk öğe için bir yineleyici döndürür bir hash_multiset , belirtilen anahtar daha büyük veya eşit bir anahtara sahip. |
|
Karma ve anahtar değerlerini öğe sipariş için kullanılan karma Nitelikler nesnesi, bir kopyasını alır bir hash_multiset. |
İşleçler
Öğeleri değiştirir hash_multiset başka bir kopyası ile hash_multiset. |
Gereksinimler
Başlık: <hash_set>
Ad alanı: stdext
Ayrıca bkz.
Başvuru
Standart C++ Kitaplığı'nda iş parçacığı güvenliği