Maison >développement back-end >C++ >Comment puis-je spécialiser `std::hash::operator()` pour les types personnalisés dans les conteneurs C non ordonnés ?
Pour prendre en charge les types de clés définis par l'utilisateur dans std:: unordered_set
Bien qu'il soit plus pratique d'écrire simplement std::unordered_set
Selon le projet de norme C N3242 §20.8.12 [unord.hash] et §17.6.3.4 [hash.requirements], et après avoir consulté diverses ressources, spécialisées std::hash
namespace std { template <> struct hash<Foo> { size_t operator()(const Foo & x) const { /* your code here, e.g. "return hash<int>()(x.value);" */ } }; }
Cela vous permet d'ajouter des spécialisations à l'espace de noms std et constitue la méthode recommandée pour étendre les fonctionnalités. de types standard pour les types définis par l'utilisateur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!