Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Klassmallen beskriver ett objekt som kan användas av någon av hash-associativa containrar – hash_map, hash_multimap, hash_set eller hash_multiset – som ett standarddragsparameterobjekt för ordning och hash de element som de innehåller.
Note
hash_compare togs bort i 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
Varje hash-associativ container lagrar ett hash-egenskapsobjekt av typen Traits (en mallparameter). Du kan härleda en klass från en specialisering av hash_compare för att selektivt åsidosätta vissa funktioner och objekt, eller så kan du ange din egen version av den här klassen om du uppfyller vissa minimikrav. Mer specifikt för ett objekt hash_comp av typen hash_compare<Key, Traits>krävs följande beteende av ovanstående containrar:
För alla värden
keyav typenKeyfungerar anropet hash_comp(key) som en hash-funktion, vilket ger en fördelning av värden av typensize_t. Funktionen som tillhandahålls av hash_compare returnerarkey.För alla värden
key1av typenKeysom föregårkey2i sekvensen och har samma hash-värde (värde som returneras av hash-funktionen) är hash_comp(key2,key1) falskt. Funktionen måste införa en total ordning på värden av typenKey. Funktionen som tillhandahålls av hash_compare returnerar comp(key2,key1),där comp är ett lagrat objekt av typenTraitssom du kan ange när du skapar objektet hash_comp. För standardparametertypenTraitsless<Key>minskar sorteringsnycklar aldrig i värde.Heltalskonstanten
bucket_sizeanger det genomsnittliga antalet element per "bucket" (hash-table-post) som containern ska försöka att inte överskrida. Den måste vara större än noll. Värdet som anges av hash_compare är 4.Heltalskonstanten
min_bucketsanger det minsta antalet bucketar som ska underhållas i hash-tabellen. Det måste vara en kraft på två och större än noll. Värdet som anges av hash_compare är 8.
Exempel
Se exempel för hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set och hash_multiset::hash_multiset, för exempel på hur du deklarerar och använder hash_compare.
Krav
rubrik:<hash_map>
Namnområde:stdext
Se även
Trådsäkerhet i C++ Standard Library
Standardbiblioteksreferens för C++