hash_multimap Class
Not
Bu API artık kullanılmıyor.Alternatif unordered_multimap Class.
Kapsayıcı sınıfı hash_multimap, standart Şablon Kütüphanesi'nin bir uzantısıdır ve hızlı her öğe değeri benzersiz olması gerekmez sıralama anahtarı olan bir çift olduğu koleksiyonu ve ilişkili veri değeri veri alma ve depolama için kullanılır.
template <
class Key,
class Type,
class Traits=hash_compare<Key, less<Key> >,
class Allocator=allocator<pair <const Key, Type> >
>
class hash_multimap
Parametreler
Tuş
Hash_multimap içinde depolanan anahtar veri türü.Türü
Hash_multimap içinde depolanan öğe veri türü.Traits
Bir sınıfın iki işlev nesneleri içeren türü nitelikler bunların göreceli sırası ve anahtar değerleri öğelerin işaretsiz tamsayı türü için eşleme birli koşul olan karma işlevi belirlemek için sıralama anahtarları olarak iki öğe değerleri karşılaştırmak mümkün olan size_t. Bu bağımsız değişkeni isteğe bağlıdır ve hash_compare*< anahtar, daha az <Key> >* varsayılan değerdir.Allocator
Hash_multimap'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ı*<*pair *<*const anahtar, yazın > >.
Notlar
Hash_multimap 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.
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.
Birden çok, böylece birçok öğe veri değerleri ile ilişkilendirilmiş bir anahtar değeri olabilir öğelerini benzersiz bir anahtar olması gerekmez çünkü.
İlişkilendirilebilir çifti kapsayıcı öğe değerlerini, anahtar değerleri birbirinden farklı olduğundan.
Bir şablon sınıf işlevlerini sağladığından 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ı bir karma eklemeler, silmeler yapar ve bir süre karşılaştırıldığında ortalama sabit zaman teknikleri sıralama kapsayıcısında öğe sayısına göre logaritması orantılı bulur. Bir hash_multimap içindeki bir öğenin değerini ancak değil ilişkili anahtar değerini, doğrudan değiştirilebilir. Bunun yerine, eski öğelerle ilişkili anahtar değerleri silinir ve yeni anahtar değerleri eklenen yeni öğelerle ilişkili olması gerekir.
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.
Uygulama tarafından kendi anahtarlarla değerleri ilişkilendirme koşullar karşılandığında hash_multimap istediği ilişkilendirilebilir kapsayıcı olmalıdır. Bir bu tür bir yapı için anahtar sözcükler ile ilişkili dize değerleri sağlayarak, say, tanımları, sıralı bir listesini burada sözcükleri her zaman benzersiz olarak tanımlanmamış modeldir. Benzersiz anahtarlar, bunun yerine, anahtar sözcükler benzersiz olarak tanımlanmış olan, bir hash_map seçim kapsayıcı'e olacaktır. Diğer taraftan, yalnızca sözcüklerin listesini depolanmakta, bir hash_set doğru kap'e olacaktır. Sonra birden fazla sözcük izin verilseydi, bir hash_multiset uygun kapsayıcı yapıyı olacaktır.
Hash_multimap sırasını denetler saklı karma çağırarak siparişleri nitelikler nesne türü 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, _Key türü anahtar, çağrı nitelikler(_Key)* 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 eşdeğer olmayan öğ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_multimap ü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_multimap sınıfı tarafından sağlanan sınıf üye işlevlerini ancak bir çift yönlü Yineleyici yineleyicidir Ekle ve hash_multimap ç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_multimap 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_multimap, ancak satıcının yineleyiciler aralığı hakkında konuşmak yapabilmek için yeterli olan [_First, _Last) ü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
Belirli bir boyutta veya öğeleri belirli bir değer veya belirli bir liste oluşturur allocator veya başka bir kopyasını hash_multimap. |
TypeDef
Temsil eden bir tür allocator için sınıf hash_multimap nesne. |
|
Çift yönlü Yineleyici, can sağlayan bir tür okuma bir const öğesinde hash_multimap. |
|
Bir işaretçi sağlar bir tür bir const öğesinde bir hash_multimap. |
|
Bir başvuru sağlayan bir tür bir const öğesinde depolanan bir hash_multimap 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_multimap. |
|
Öğelerin sayısını temsil etmek için kullanılan bir imzalı tamsayı türü bir hash_multimap yineleyiciler göre sıralanmasını öğeler arasındaki aralık. |
|
Çift yönlü Yineleyici sağlayan bir tür okuma veya herhangi bir öğe olarak değiştirmek bir hash_multimap. |
|
İ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_multimap. |
|
Her bir öğesi oluşturan sıralama anahtar nesneyi tanımlayan bir tür hash_multimap. |
|
Depolanan veri türünü temsil eden bir tür bir hash_multimap. |
|
Bir öğe için bir işaretçi sağlar bir tür bir hash_multimap. |
|
Depolanan bir öğeye başvuru sağlayan bir tür bir hash_multimap. |
|
Çift yönlü Yineleyici sağlayan bir tür okuma veya değiştirme tersine çevrilmiş bir öğe hash_multimap. |
|
İçindeki öğelerin sayısını gösteren bir işaretsiz tamsayı türü bir hash_multimap. |
|
İki öğe kendi göreli sırada belirlemek için sıralama anahtarları olarak karşılaştırabilirsiniz bir işlev nesnesi sağlayan bir türü hash_multimap. |
Üye işlevleri
İlk öğe adresleme bir yineleyici döndürür hash_multimap. |
|
İlk öğe adresleme const bir yineleyici döndürür hash_multimap. |
|
İzleyen'deki son öğe konumu adresleri const bir yineleyici döndürür bir hash_multimap. |
|
Tüm öğeleri siler bir hash_multimap. |
|
İçindeki öğelerin sayısını verir bir hash_multimap parametresi tarafından belirtilen anahtar anahtar eşleşir. |
|
İlk öğe tersine çevrilmiş bir adresleme const bir yineleyici döndürür hash_multimap. |
|
Tersine çevrilmiş bir'deki son öğe izleyen konum adresleri const bir yineleyici döndürür hash_multimap. |
|
Yerlerine içinde yapılandırılan bir öğe ekler bir hash_multimap. |
|
Yerlerine içinde yapılandırılan bir öğe ekler bir hash_multimap, yerleştirme İpucu ile. |
|
Testleri, bir hash_multimap boş. |
|
İzleyen'deki son öğe konumu gideren bir yineleyici döndürür bir hash_multimap. |
|
İzleyen'deki son öğe konumu gideren bir yineleyici döndürür bir hash_multimap. |
|
Bir öğe veya öğeleri aralığı kaldırır bir hash_multimap belirtilen konumlardan |
|
Bir öğe konumunu adresleme bir yineleyici döndürür bir hash_multimap , belirtilen anahtar için eşdeğer bir anahtarı vardır. |
|
Bir kopyasını verir allocator nesnesini oluşturmak için kullanılan hash_multimap. |
|
Bir öğe veya öğe aralığı ekler hash_multimap belirtilen konumda. |
|
Sipariş anahtarları için kullanılan karşılaştırma nesnenin bir kopyasını alır bir hash_multimap. |
|
İlk öğe için bir yineleyici döndürür bir hash_multimap , belirtilen anahtar daha büyük veya eşit bir anahtar değeri. |
|
En fazla uzunluğunu döner hash_multimap. |
|
İlk öğe tersine çevrilmiş bir adresleme bir yineleyici döndürür hash_multimap. |
|
Tersine çevrilmiş bir'deki son öğe izleyen konum gideren bir yineleyici döndürür hash_multimap. |
|
Yeni bir boyutunu belirtir bir hash_multimap. |
|
İki öğe değişimi hash_multimaps. |
|
İlk öğe için bir yineleyici döndürür bir hash_multimap belirtilen anahtar büyük bir anahtarla değer. |
|
Sipariş öğesi değerleri için kullanılan karşılaştırma nesnenin bir kopyasını alır bir hash_multimap. |
İşleçler
Öğeleri değiştirir bir hash_multimap başka bir kopyası ile hash_multimap. |
Gereksinimler
Başlık: <hash_map>
Ad alanı: stdext
Ayrıca bkz.
Başvuru
Standart C++ Kitaplığı'nda iş parçacığı güvenliği