Problème d'insertion dans une map

Thirteen Messages postés 3 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 29 février 2004 - 29 févr. 2004 à 00:33
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 - 1 mars 2004 à 00:56
J'ai une map déclarée ainsi : std::map<CPoint, CCoord> Calibrage.
Mais lorske j'essaie d'insérer deds en faisant Calibrage [P] = C, j'ai une erreur : 'operator<' not implemented in type 'CPoint' for arguments of the same type.
Keske jdois faire ?

3 réponses

Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
29 févr. 2004 à 00:44
tu dois définir une relation d'ordre sur CPoint... en gros:

bool operator < ( const CPoint& lhs, const CPoint& rhs )
{
// A toi de definir ta relation d'ordre
// quelque chose comme... ( elle n'est pas exacte
// mais ça devrait fonctionner quand même
return ( lhs.x < rhs.x ) || ( lhs.x == rhs.x &&
lhs.y < rhs.y )
}
0
Thirteen Messages postés 3 Date d'inscription samedi 15 novembre 2003 Statut Membre Dernière intervention 29 février 2004
29 févr. 2004 à 13:56
Erf le problème ne vient pas de là... Borland ouvre le fichier _function_base.h et me dit ke l'erreur vient de là :

template <class _Tp>
struct less : public binary_function<_Tp,_Tp,bool>
{
bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < __y; }
};

Et ça c un fichier de Borland, jpeux rien y faire...
0
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
1 mars 2004 à 00:56
En fait, si tu dois pouvoir y faire quelque chose car le compilateur
doit te dire qu'il n'arruve pas à trouver l'opérateur < sur la class _Tp (acessoirement ici CPoint).
Ajoute cet opérateur (comme celui que je t'ai passé) et peut être que ça fonctionnera.
0
Rejoignez-nous