hash_compare, classe
La classe du modèle décrit un objet qui peut être utilisé par les conteneurs associatives de hachage l'un des hash_map —, hash_multimap, hash_set, ou hash_multiset — en tant qu'objet de paramètre par défaut de Caractéristiques pour classer et hacher les éléments qu'il contient.
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;
};
Notes
Chaque conteneur associatif de hachage inscrit un objet Ctraits de hachage de type Caractéristiques (paramètre de). Vous pouvez dériver une classe d'une spécialisation de hash_compare pour remplacer sélectivement de certaines fonctions et objets, ou vous pouvez fournir votre propre version de cette classe pour répondre à certaines exigences minimales. Spécifiquement, pour un hash_comp de type hash_compare<Key, Traits>, le comportement suivant est requis par les conteneurs ci-dessus :
Pour toutes les valeurs _Key de type Clé, l'appel hash_comp(_Key) sert de fonction de hachage, qui fournit une répartition des valeurs de type size_t. La fonction fournie par le hash_compare retourne _Key.
Pour toute valeur _Key1 du type Clé qui précède _Key2 dans la séquence et a la même valeur de hachage (valeur retournée par la fonction de hachage), hash_comp(_Key2, _Key1) est false. La fonction doit appliquer le total des valeurs de type Clé. La fonction fournie par le hash_compare retourne élém.(_Key2, _Key1), où les élém. est un objet stocké de type Caractéristiques que vous pouvez spécifier lorsque vous construisez le hash_comp de l'objet. Pour le type **less<Key>**de Caractéristiques par défaut, les clés de tri ne réduisent jamais dans la valeur.
La constante entière bucket_size spécifie le nombre moyen d'éléments par « compartiment » (entrée de brouillage) que le conteneur doit essayer de ne pas dépasser. Elle doit être supérieure à zéro. La valeur fournie par le hash_compare est 4.
La constante entière min_buckets spécifie le nombre minimal de compartiments à la gestion de la table de hachage. Elle doit être un flux de et supérieur à zéro. La valeur fournie par le hash_compare est 8.
Dans Visual C++ .NET 2003, les membres des fichiers d'en-tête <hash_map> et de <hash_set> ne sont plus dans l'espace de noms standard, mais ont été plutôt déplacés dans l'espace de noms de stdext. Pour plus d'informations, consultez The stdext Namespace.
Exemple
Consultez les exemples de hash_map::hash_map, hash_multimap::hash_multimap, hash_set::hash_set, et hash_multiset::hash_multiset, pour obtenir des exemples d'état et utiliser le hash_compare.
Configuration requise
En-tête: <hash_map>
Espace de noms : stdext
Voir aussi
Référence
Sécurité des threads dans la bibliothèque standard C++
Bibliothèque STL (Standard Template Library)