hash_compare Class
Popisuje šablony třídy objektu, který lze použít v libovolné asociativní kontejnerů hash – hash_map, hash_multimap, hash_set, nebo hash_multiset – jako výchozí znaky parametr objektu objednávky a algoritmu 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ý kontejner asociativní hash uloží objekt algoritmu hash znaky typu znaky (parametr šablony).Třídy lze odvodit z specializace z hash_compare do selektivně změnit některé funkce a objekty, nebo můžete zadat verzi této třídy, pokud splňují určité minimální požadavky.Konkrétně pro hash_comp objekt typu hash_compare < klíč, znaky >, nad kontejnery vyžaduje následující chování:
Pro všechny hodnoty _Key typu klíčů, volání hash_comp(_Key) slouží jako funkce hash dává rozdělení hodnot typu size_t.Vrátí funkce poskytované hash_compare _Key.
Pro libovolnou hodnotu _Key1 typu klíč , předchází _Key2 v pořadí a má stejné zatřiďovací hodnota (hodnota vrácená funkcí hash) hash_comp(_Key2, _Key1) je false.Funkce musí stanovit celkové pořadí hodnot typu klíčů.Vrátí funkce poskytované hash_compare comp(_Key2, _Key1), kde comp je uložená objekt typu znaky , můžete určit při vytvoření objektu hash_comp.Výchozí znaky typ parametru méně <Key>, nikdy klíče řazení snížení hodnoty.
Celočíselná konstanta bucket_size určuje střední počet prvků za "plechovka" (položka tabulky hash), nádoby se pokuste nesmí překročit.Musí být větší než nula.Hodnota poskytnutých hash_compare je 4.
Celočíselná konstanta min_buckets Určuje minimální počet bloků udržovat tabulky hash.Musí být napájení dvou a větší než nula.Hodnota poskytnutých hash_compare je 8.
V jazyce C++.NET 2003 členy <hash_map> a <hash_set> záhlaví souborů již v oboru názvů std, ale byla spíše přesunuta do oboru názvů stdext.Viz stdext oboru názvů Další informace.
Příklad
Příklady pro hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set, a hash_multiset::hash_multiset, příklady deklarovat a použití hash_compare.
Požadavky
Záhlaví: <hash_map>
Obor názvů: stdext
Viz také
Referenční dokumentace
Bezpečnostní vlákno v Standardní knihovna C++