Bonjour à tous

Je dispose d'un grand nombre de données dans lesquelles je dois régulièrement faire des recherches d'éléments.

Après avoir testé le std::vector, je me suis rendu compte que la recherche était vraiment trop lente.
J'ai donc pensé les mettre dans une map.

En résumé je dispose d'une structure point, codée comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
struct point {
	double _x, _y ;
 
	point ()
	{
		_x = 0. ;
		_y = 0. ;
	} 
 
	point (double x, double y) 
	{
		_x = x ;
		_y = y ;
	} 
} ;


que je veux mettre en data

Ensuite mon code (long, qui utilise std::map::find) me renvoie la même erreur que ce petit exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
std::map<int, point > uuu ;
point ppp(2., 3.) ;
uuu[0] = ppp ;
std::map<int, point >::iterator it = uuu.find(ppp) ;

A savoir :

Erreur 1 error C2664: 'std::_Tree<_Traits>::iterator std::_Tree<_Traits>::find(const int &)' : impossible de convertir le paramètre 1 de 'point' en 'const int &' main.cpp 26



Je ne vois vraiment pas pourquoi il aurait besoin de convertir mon p._x en const int &...

Merci beaucoup de votre aide..

R.Portalez