Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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
keyvan het typeKeyfungeert de aanroep hash_comp(key) als een hash-functie, wat een verdeling van de waarden van het typesize_toplevert. De functie die door hash_compare wordt geleverd, retourneertkey.Voor elke waarde
key1van het typeKeydat voorafgaat aankey2de 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 typeKey. De functie die wordt geleverd door hash_compare retourneert comp(key2,key1),waarbij comp een opgeslagen object van het typeTraitsis dat u kunt opgeven wanneer u het object maakt hash_comp. Sorteersleutels voor het standaardparametertypeTraitsless<Key>nemen nooit af in waarde.De constante
bucket_sizevoor 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_bucketsvoor 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