hash_compare – třída
Šablona třídy popisuje objekt, který lze použít pomocí libovolného asociativního kontejneru hash – hash_map, hash_multimap, hash_set nebo hash_multiset – jako výchozí objekt parametru Traits k řazení a hash prvků, které obsahují.
Syntaxe
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;
};
Poznámky
Každý kontejner hash asociativní ukládá objekt hash traits typu Traits
(parametr šablony). Třídu můžete odvodit ze specializace hash_compare k selektivnímu přepsání určitých funkcí a objektů, nebo můžete zadat vlastní verzi této třídy, pokud splňujete určité minimální požadavky. Konkrétně pro objekt hash_comp typu hash_compare<Key, Traits>
je pro výše uvedené kontejnery vyžadováno následující chování:
Pro všechny hodnoty
key
typuKey
slouží volání hash_comp(key
) jako hashovací funkce, která poskytuje rozdělení hodnot typusize_t
. Funkce zadaná hash_compare vrátíkey
.Pro libovolnou hodnotu
key1
typuKey
, která předcházíkey2
sekvenci a má stejnou hodnotu hash (hodnotu vrácenou funkcí hash), hash_comp(key2
,key1
) je nepravda. Funkce musí uložit celkové pořadí hodnot typuKey
. Funkce zadaná hash_compare vrátí comp(key2
,key1
),,
kde comp je uložený objekt typuTraits
, který můžete určit při vytváření objektu hash_comp. U výchozíhoTraits
typuless<Key>
parametru se klíče řazení nikdy nesníží v hodnotě.Celočíselná konstanta
bucket_size
určuje průměrný počet prvků na kontejner (položka hash-table), které by se měl kontejner pokusit překročit. Musí být větší než nula. Hodnota zadaná hash_compare je 4.Celočíselná konstanta
min_buckets
určuje minimální počet kbelíků, které se mají zachovat v tabulce hash. Musí to být mocnina dvou a větších než nula. Hodnota zadaná hash_compare je 8.
Příklad
Příklady pro hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set a hash_multiset::hash_multiset, příklady deklarování a použití hash_compare.
Požadavky
Záhlaví:<hash_map>
Obor názvů: stdext
Viz také
Bezpečný přístup z více vláken ve standardní knihovně C++
Standardní knihovna C++ – referenční dokumentace