hash_compare – třída
Popisuje šablony třídy objektu, který lze použít v libovolné asociativní kontejnery hash – hash_map, hash_multimap, hash_set, nebo hash_multiset – jako výchozí znaky parametr objektu pro objednávky a hash prvky obsahují.
template<class Key, class Traits = less<Key> >
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á nádoba asociativní hash ukládá znaky hash objekt typu znaky (parametr šablony).Lze odvodit třídu z specializace z hash_compare selektivně přepsat některé funkce a objekty, nebo můžete zadat vlastní verzi této třídy, pokud jsou splněny určité minimální požadavky.Konkrétně pro hash_comp objekt typu hash_compare<klíč, znaky>, nad kontejnery požaduje následující chování:
Pro všechny hodnoty _Key typu klíče, volání hash_comp(_Key) slouží jako funkce hash, která dává rozdělení hodnot typu size_t.Vrátí funkce poskytované hash_compare _Key.
Pro libovolnou hodnotu _Key1 typu klíče , předchází _Key2 v pořadí a se stejným hash hodnotu (hodnotu vrácenou funkcí hash), hash_comp(_Key2, _Key1) je false.Funkce musí stanovit celkové pořadí hodnot typu klíče.Vrátí funkce poskytované hash_compare comp(_Key2, _Key1), kde comp je objekt typu uložené znaky , že můžete určit při vytvoření objektu hash_comp.Výchozí znaky typ parametru méně<klíče>, klíče řazení nikdy snížení hodnoty.
Celočíselná konstanta bucket_size určuje střední počet prvků za "plechovky" (položka tabulky hash), kontejner se pokuste nelze překročit.Musí být větší než nula.Hodnota hash_compare je 4.
Celočíselná konstanta min_buckets Určuje minimální počet bloků k udržování tabulky hash.Musí být napájení dvou a větší než nula.Hodnota hash_compare je 8.
V aplikaci Visual C++ .NET 2003, členové hlavičkových souborů tříd <hash_map> a <hash_set> již nejsou v oboru názvů std, ale byly přesunuty do oboru názvů stdext.Další informace naleznete v tématu Obor názvů stdext.
Příklad
Příklady pro hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set, a hash_multiset::hash_multiset, příklady, jak deklarovat a použít hash_compare.
Požadavky
Hlavička: <hash_map>
Obor názvů: stdext
Viz také
Referenční dokumentace
Bezpečný přístup z více vláken ve standardní knihovně C++