QMap : operator< de QPoint
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 :
Code:
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()));
} |
Malgré tout, j'observe deux comportements que je n'arrive pas bien à comprendre :
1) En mode debug, j'observe que l'operator fait appel à :
Code:
1 2 3 4
| template <class Key> inline bool qMapLessThanKey(const Key &key1, const Key &key2)
{
return key1 < key2;
} |
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.
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 :)