Maison >développement back-end >C++ >À quelles exigences clés une classe doit-elle répondre pour être utilisée comme clé dans un `std::map` ?
Exigences clés pour std::map
Pour qu'une classe soit une clé valide dans une bibliothèque standard std::map, il doit répondre à des exigences spécifiques. Ces exigences garantissent que les clés peuvent être commandées et comparées de manière fiable au sein de la carte.
Implémentation de clé personnalisée
Si la classe que vous souhaitez utiliser comme clé ne répond pas à ces exigences, vous pouvez créer un classe wrapper qui hérite de la classe d’origine et implémente les opérateurs nécessaires. Ceci est utile lorsque la classe d'origine ne peut pas être modifiée ou ne fournit pas d'opérateur de comparaison approprié.
Ce qui suit est un exemple d'encapsuleur de clé personnalisé qui implémente un opérateur de comparaison pour une structure simple :
struct MyType { // ... original class members }; struct MyTypeWrapper { MyType original; bool operator<(const MyTypeWrapper& other) const { // ... custom comparison logic } };
En utilisant MyTypeWrapper comme clé, vous pouvez mapper des objets de la classe MyType tout en vous assurant que l'ordre de la carte est correctement conservé.
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!