Sdílet prostřednictvím


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++

Standardní knihovna šablon

Další zdroje

<hash_map> Členové

<hash_set> Členové