Bonjour,

Je vais commencer par vous exposer mon problème.
J'ai deux classes : PipingModel et Point. Je souhaite remplir une map :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
map<int, set<pair<Point,Point>>> mapPipePoint;
Où le "int" est l'id du pipe associé aux deux Points.

Pour cela je dispose d'un vector de la forme vector<tuple<idPipe, idPoint1, idPoint2>> :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
vector<tuple<int,int,int>> vectorIdPipePoint;
Ce vector me donne donc les id des deux points associés à chaque pipe.

Or je dispose aussi des vectors suivants dans ma classe PipingModel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
vector<double> coordXVect;
vector<double> coordYVect;
vector<double> coordZVect;
qui me donne les coordonnées X, Y, Z pour un point : par exemple, si je veux les coordonnées de mon premier point je fais coordXVect[0] pour x, etc..

Le constructeur de ma classe Point :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
MyPoint::MyPoint(int id, int x, int y, int z) : idPoint(id), coordX(x), coordY(y), coordZ(z)
{
}
Pour remplir ma map (avec des Objets Point du coup), j'ai procéder de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
void PipingModel::FillMapPipePoint() // Problème avec cette méthode 
{
    int j=0;
    for (auto t = vectorIdPipePoint.begin(); t != vectorIdPipePoint.end(); ++t)
    {
	mapPipePoint[get<0>(*t)].insert(make_pair(Point(get<1>(*t), coordXVect[j], coordYVect[j], coordZVect[j]), Point(get<2>(*t), coordXVect[j+1], coordYVect[j+1], coordZVect[j+1])));
	j++;
    }
}
L'erreur que le programme me sort :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
error C2784: 'bool std::operator <(const std::move_iterator<_RanIt> &,const std::move_iterator<_RanIt2> &)'*: impossible de déduire l'argument modèle pour 'const std::move_iterator<_RanIt> &' à partir de 'const Point'
J'ai fais pas mal de recherche pour résoudre mon problème, j'ai essayer de mettre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
bool operator< (const MyPoint& left, const MyPoint& right) {};
Mais mon problème persiste et je ne vois pas à quel endroit les Point sont comparés à l'aide de "<".

Je ne souhaite pas que l'on me donne une réponse toute faite mais que l'on m'explique si possible mon erreur.

Merci d'avance pour vos réponses