Condividi tramite


hash_compare Class

La classe modello descrive un oggetto che può essere utilizzato da qualsiasi dei contenitori associativi di hash hash_map, hash_multimap, hash_set, o hash_multiset - come oggetto parametro predefinito di tratti per ordinare e l'hashing gli elementi che contengono.

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;
   };

Note

Ogni contenitore associativo hash archiviato un oggetto di tratti di hash di tipo tratti (un parametro di modello).È possibile derivare la classe da una specializzazione di hash_compare per eseguire selettivamente l'override di alcune funzioni e oggetti, oppure è possibile fornire la propria versione della classe se pianificazione non soddisfa determinati requisiti minimi.In particolare, per un hash_comp dell'oggetto di tipo hash_compare <chiave, tratti> , il comportamento seguente è obbligatorio nei contenitori di precedenza:

  • Per tutti i valori _Key di tipo chiave, la chiamata hash_comp(_Key) funge da funzione hash, che produce una distribuzione di valori di tipo size_t.la funzione fornita da hash_compare restituisce _Key.

  • Per qualsiasi valore _Key1 di tipo chiave che precede _Key2 nella sequenza e ha lo stesso valore hash (valore restituito dalla funzione hash), hash_comp(_Key2, _Key1) è false.La funzione necessario imporre un ordine totale su valori di tipo chiave.La funzione fornita da hash_compare restituisce comp.(_Key2, _Key1), dove comp. sono un oggetto archiviato di tipo tratti che è possibile specificare quando si crea il hash_comp dell'oggetto.Per il tipo di parametro predefinito meno <chiave> di tratti , chiavi di ordinamento non diminuiscono mai il valore.

  • La costante Integer bucket_size specifica il numero medio degli elementi per “bucket„ (voce della tabella hash) che il contenitore opportuno provare per non eccedere.Deve essere maggiore di zero.il valore fornito da hash_compare è 4.

  • La costante Integer min_buckets specifica il numero minimo dei bucket per gestire nella tabella hash.Deve essere una potenza di due e maggiore di zero.il valore fornito da hash_compare è 8.

In Visual C++ .NET 2003, i membri di <hash_map> e <hash_set> i file di intestazione non sono più nello spazio dei nomi di deviazione standard, ma sono stati spostati nello spazio dei nomi di stdext.Per ulteriori informazioni, vedere lo spazio dei nomi stdext.

Esempio

Vedere gli esempi per hash_map:: hash_map, hash_multimap:: hash_multimap, hash_set:: hash_sete hash_multiset:: hash_multiset, per esempi di come dichiarare e utilizzare il hash_compare.

Requisiti

intestazione: <hash_map>

Spazio dei nomi: stdext

Vedere anche

Riferimenti

Thread safety della libreria C++ standard

Libreria di modelli standard

Altre risorse

<hash_map> membri

<hash_set> membri