hash_compare-klasse

De klassesjabloon beschrijft een object dat kan worden gebruikt door een van de hash-koppelingscontainers ( hash_map, hash_multimap, hash_set of hash_multiset) als een standaardparameterobject eigenschappen om de elementen die ze bevatten te ordenen en hashen .

Note

hash_compare is verwijderd in MSVC Build Tools 14.51

Syntax

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;
};

Remarks

Elke hash-koppelingscontainer slaat een hash-kenmerkobject van het type Traits (een sjabloonparameter) op. U kunt een klasse afleiden van een specialisatie van hash_compare om bepaalde functies en objecten selectief te overschrijven, of u kunt uw eigen versie van deze klasse opgeven als u aan bepaalde minimumvereisten voldoet. Voor een object hash_comp van het type hash_compare<Key, Traits>is het volgende gedrag vereist voor de bovenstaande containers:

  • Voor alle waarden key van het type Keyfungeert de aanroep hash_comp(key) als een hash-functie, wat een verdeling van de waarden van het type size_toplevert. De functie die door hash_compare wordt geleverd, retourneert key.

  • Voor elke waarde key1 van het type Key dat voorafgaat aan key2 de reeks en dezelfde hashwaarde heeft (waarde die wordt geretourneerd door de hash-functie), is hash_comp(key2, key1) onwaar. De functie moet een totaalvolgorde opleggen aan waarden van het type Key. De functie die wordt geleverd door hash_compare retourneert comp(key2, key1) , waarbij comp een opgeslagen object van het type Traits is dat u kunt opgeven wanneer u het object maakt hash_comp. Sorteersleutels voor het standaardparametertype Traitsless<Key>nemen nooit af in waarde.

  • De constante bucket_size voor gehele getallen geeft het gemiddelde aantal elementen per bucket (hash-tabelvermelding) aan dat de container niet mag overschrijden. Het moet groter zijn dan nul. De waarde die wordt opgegeven door hash_compare is 4.

  • De constante min_buckets voor gehele getallen geeft het minimum aantal buckets op dat moet worden onderhouden in de hash-tabel. Het moet een macht van twee en groter dan nul zijn. De waarde die is opgegeven door hash_compare is 8.

Voorbeeld

Zie voorbeelden voor hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set en hash_multiset::hash_multiset, voor voorbeelden van het declareren en gebruiken van hash_compare.

Requirements

Rubriek:<hash_map>

Naamruimte:stdext

Zie ook

Thread Safety in de standaardbibliotheek van C++
Naslaginformatie over de C++ standaard bibliotheek