Aracılığıyla paylaş


hash_set Class

Not

Bu API artık kullanılmıyor.Alternatif unordered_set Class.

Kapsayıcı sınıfı hash_set, standart şablon kitaplığı (stl) uzantısıdır ve depolama ve veri içerdiği öğelerin değerlerini benzersiz ve anahtar değerleri olarak hizmet veren 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_set

Parametreler

  • Key
    Hash_set 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_set'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_set 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_set 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ı 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 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.

Uygulama tarafından kendi anahtarlarla değerleri ilişkilendirme koşullar karşılandığında hash_set istediği ilişkilendirilebilir kapsayıcı olmalıdır. Öğeleri bir hash_set, benzersiz ve kendi sıralama anahtarı olarak hizmet eder. Bir yapı bu tür sıralı bir listesini, söyleyin, sözcük sözcük yalnızca bir kez oluşabilir modelidir. Sonra birden fazla sözcük izin verilseydi, bir hash_multiset uygun kapsayıcı yapıyı olacaktır. Değerleri benzersiz anahtar sözcükler listesine eklenmiş gerekir, sonra bir hash_map bu verileri içerecek şekilde uygun bir yapı olacaktır. Bunun yerine anahtarlar benzersiz değildir, daha sonra bir hash_multimap seçim kapsayıcı olurdu.

Hash_set 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, daha az <Key> >. Tüm değerler için özellikle, _Key anahtarı, çağrı ayırdedici nitelik türü (_Key ) türü size_t değerleri dağıtımını sağlar.

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_set üzerinde uygulanan bir sipariş 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_set sınıfı tarafından sağlanan sınıf üye işlevlerini ancak bir çift yönlü Yineleyici yineleyicidir Ekle ve hash_set ç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. Her Yineleyici kavramı kendi gereksinimlerine sahiptir 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ği en az sayıda, 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.

1t4xas78.collapse_all(tr-tr,VS.110).gifOluşturucular

hash_set

Oluşturan bir hash_set yani boş veya yani bir kopyasını tüm veya bazı diğer parçası hash_set.

1t4xas78.collapse_all(tr-tr,VS.110).gifTypeDef

allocator_type

Temsil eden bir tür allocator için sınıf hash_set nesne.

const_iterator

Çift yönlü Yineleyici, can sağlayan bir tür okuma bir const öğesinde hash_set.

const_pointer

Bir işaretçi sağlar bir tür bir const öğesinde bir hash_set.

const_reference

Bir başvuru sağlayan bir tür bir const öğesinde depolanan bir hash_set okumak ve gerçekleştirmek için const işlemleri.

const_reverse_iterator

Herhangi bir çift yönlü Yineleyici, can sağlayan bir türü okuma const öğesinde hash_set.

difference_type

Öğelerin sayısını temsil etmek için kullanılan bir imzalı tamsayı türü bir hash_set yineleyiciler göre sıralanmasını öğeler arasındaki aralık.

Yineleyici

Çift yönlü Yineleyici sağlayan bir tür okuma veya herhangi bir öğe olarak değiştirmek bir hash_set.

key_compare

İ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_set.

key_type

Açıklayan bir öğesi olarak depolanan bir nesne türü bir hash_set sıralama anahtarı olarak kendi kapasite.

İşaretçi

Bir öğe için bir işaretçi sağlar bir tür bir hash_set.

başvuru

Depolanan bir öğeye başvuru sağlayan bir tür bir hash_set.

reverse_iterator

Çift yönlü Yineleyici sağlayan bir tür okuma veya değiştirme tersine çevrilmiş bir öğe hash_set.

size_type

İçindeki öğelerin sayısını gösteren bir işaretsiz tamsayı türü bir hash_set.

value_compare

İ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_set göreli belirlemek için sipariş ve birli öğeleri elindeki koşul.

value_type

Açıklayan bir öğesi olarak depolanan bir nesne türü bir hash_set değeri olarak kendi kapasite.

1t4xas78.collapse_all(tr-tr,VS.110).gifÜye işlevleri

başlamak

İlk öğe gideren bir yineleyici döndürür hash_set.

hash_set::cbegin

İlk öğe adresleme const bir yineleyici döndürür hash_set.

hash_set::cend

İzleyen'deki son öğe konumu adresleri const bir yineleyici döndürür bir hash_set.

Temizle

Tüm öğeleri siler bir hash_set.

count

İçindeki öğelerin sayısını verir bir hash_set parametresi tarafından belirtilen anahtar anahtar eşleşir.

hash_set::crbegin

İlk öğe tersine çevrilmiş bir adresleme const bir yineleyici döndürür hash_set.

hash_set::crend

Tersine çevrilmiş bir'deki son öğe izleyen konum adresleri const bir yineleyici döndürür hash_set.

hash_set::emplace

Yerlerine içinde yapılandırılan bir öğe ekler bir hash_set.

hash_set::emplace_hint

Yerlerine içinde yapılandırılan bir öğe ekler bir hash_set, yerleştirme İpucu ile.

boş

Testleri, bir hash_set boş.

Son

İzleyen'deki son öğe konumu gideren bir yineleyici döndürür bir hash_set.

equal_range

Yineleyicilerde çiftinin sırasıyla ilk öğe dönen bir hash_set belirtilen anahtar ve ilk öğe için büyük bir anahtarla hash_set anahtar daha büyük veya eşit bir anahtara sahip.

silme

Bir öğe veya öğeleri aralığı kaldırır bir hash_set belirtilen pozisyonları veya belirtilen anahtar eşleşen öğeleri kaldırır.

find

Bir öğe konumunu adresleme bir yineleyici döndürür bir hash_set , belirtilen anahtar için eşdeğer bir anahtarı vardır.

get_allocator

Bir kopyasını verir allocator nesnesini oluşturmak için kullanılan hash_set.

Ekle

Bir öğe veya öğe aralığı ekler bir hash_set.

key_comp

Sipariş anahtarları için kullanılan karşılaştırma nesnenin bir kopyasını alır bir hash_set.

lower_bound

İlk öğe için bir yineleyici döndürür bir hash_set ile belirtilen anahtar daha büyük veya eşit olan bir anahtar.

max_size

En fazla uzunluğunu döner hash_set.

rbegin

İlk öğe tersine çevrilmiş bir adresleme bir yineleyici döndürür hash_set.

rend

Tersine çevrilmiş bir'deki son öğe izleyen konum gideren bir yineleyici döndürür hash_set.

boyutu

İçindeki öğelerin sayısını verir hash_set.

takas

İki öğe değişimi hash_sets.

upper_bound

İlk öğe için bir yineleyici döndürür bir hash_set , belirtilen anahtar daha büyük veya eşit bir anahtara sahip.

value_comp

Karma ve anahtar değerlerini öğe sipariş için kullanılan karma Nitelikler nesnesi, bir kopyasını alır bir hash_set.

1t4xas78.collapse_all(tr-tr,VS.110).gifİşleçler

hash_set::operator=

Öğeleri değiştirir bir hash_set başka bir kopyası ile hash_set.

Gereksinimler

Başlık: <hash_set>

Ad alanı: stdext

Ayrıca bkz.

Başvuru

Standart C++ Kitaplığı'nda iş parçacığı güvenliği

Standart Şablon Kütüphanesi

Diğer Kaynaklar

<hash_set> Üyeler

hash_set üyeleri