Aracılığıyla paylaş


hash_compare Sınıfı

Sınıf şablonu, karma ilişkilendirilebilir kapsayıcılardan herhangi biri (hash_map, hash_multimap, hash_set veya hash_multiset) tarafından içerdikleri öğeleri sıralamak ve karma hale getirmek için varsayılan Traits parametre nesnesi olarak kullanılabilecek bir nesneyi açıklar.

Sözdizimi

class hash_compare
{
   Traits comp;
   public:
   const size_t bucket_size = 4;
   const size_t min_buckets = 8;
   hash_compare();
   hash_compare(Traits pred);
   size_t operator()(const Key& key) const;
   bool operator()(
   const Key& key1,
   const Key& key2) const;
};

Açıklamalar

Her karma ilişkilendirici kapsayıcı, türünde Traits bir karma özellik nesnesi (şablon parametresi) depolar. Belirli işlevleri ve nesneleri seçmeli olarak geçersiz kılmak için hash_compare uzmanlığından bir sınıf türetebilir veya belirli minimum gereksinimleri karşılıyorsanız bu sınıfın kendi sürümünü sağlayabilirsiniz. Özellikle, türünde hash_compare<Key, Traits>bir nesne hash_comp için yukarıdaki kapsayıcılar için aşağıdaki davranış gereklidir:

  • türündeki Keytüm değerler key için hash_comp()key çağrısı, türündeki size_tdeğerlerin dağılımını veren bir karma işlevi görür. hash_compare tarafından sağlanan işlev döndürür key.

  • Diziden önce key2 gelen ve aynı karma değerine (karma işlevi tarafından döndürülen değer) sahip herhangi bir tür Key değeri key1 için hash_comp(key2, key1) false olur. işlevi, türündeki Keydeğerlere toplam sıralama uygulamalıdır. hash_compare tarafından sağlanan işlev comp(key2, ) , döndürür; burada comp, key1nesne Traits hash_comp oluştururken belirtebileceğiniz türde bir saklı nesnedir. Varsayılan Traits parametre türü less<Key>için sıralama tuşları hiçbir zaman değerde azalmaz.

  • Tamsayı sabiti bucket_size , kapsayıcının aşmamaya çalışması gereken "demet" (karma tablo girdisi) başına ortalama öğe sayısını belirtir. Sıfırdan büyük olmalıdır. hash_compare tarafından sağlanan değer 4'dür.

  • Tamsayı sabiti min_buckets , karma tabloda tutulacak en az demet sayısını belirtir. İki ve sıfırdan büyük bir güç olmalıdır. hash_compare tarafından sağlanan değer 8'dir.

Örnek

hash_compare bildirme ve kullanma örnekleri için hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set ve hash_multiset::hash_multiset örneklerine bakın.

Gereksinimler

Üst Bilgi:<hash_map>

Ad alanı: stdext

Ayrıca bkz.

C++ Standart Kitaplığında İş Parçacığı Güvenliği
C++ Standart Kitaplığı Başvurusu