Clés pour std::map : exigences et mise en œuvre
Lors de l'utilisation de std::map pour mapper des objets de différentes classes, la classe que vous l'intention d'utiliser comme clé peut ne pas satisfaire aux exigences nécessaires pour des clés valides. std::map organise son contenu à l'aide d'un mécanisme de classement, ce qui soulève la question de savoir si une classe arbitraire peut servir de clé ou s'il existe des exigences spécifiques.
La clé de std::map doit respecter les éléments suivants exigences :
L'ordre de la carte est contrôlé par le troisième argument du modèle ou l'argument du constructeur, qui est par défaut std::less
struct CmpMyType { bool operator()( MyType const& lhs, MyType const& rhs ) const { // Implementation of comparison logic } };
Assurez-vous que votre opérateur de comparaison définit un ordre strict. Si CmpMyType()( a, b ) renvoie true, CmpMyType()( b, a ) doit renvoyer false. Lorsque les deux renvoient faux, les éléments sont considérés comme équivalents et appartiennent à la même classe d'équivalence.
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!