Bonjour,
Je manipule actuellement une QMap avec en clé des QPoint.
J'ai donc redéfinie notamment la méthode "operator<" appelée au moment des insert dans ma map :
Malgré tout, j'observe deux comportements que je n'arrive pas bien à comprendre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 inline bool operator<(const QPoint &p1, const QPoint &p2) { return ((p1.x() < p2.x() && p1.y() <= p2.y()) || (p1.x() =< p2.x() && p1.y() < p2.y())); }
1) En mode debug, j'observe que l'operator fait appel à :
Mais là, bien que key1 vaut bien QPoint(50,22) et key2 QPoint(160,22), il semble que la valeur key1<key2 ne soit pas définie. J'observe après une boucle entre l'operator et le qMapLessThanKey.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 template <class Key> inline bool qMapLessThanKey(const Key &key1, const Key &key2) { return key1 < key2; }
2) Après un premier élément inséré dans la map de clé QPoint(50,22), j'observe que l'insertion d'un autre élément de clé QPoint(160,22) va venir écraser le premier élément (toujours un élément dans la map et la valeur est égale à celle du dernier inséré..)
Avez-vous une explication ?
Merci![]()
Partager