Sdílet prostřednictvím


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

Standardní šablona knihovny

Další zdroje

<hash_map> Členové

<hash_set> Členové