Conseil choix structure STL
Bonjour, j'ai besoin d'un conseil :
J'ai une structure suivante (bateau, c'est un point...)
Code:
1 2 3 4 5 6
|
struct elt{
int x;
int y;
};
list<elt> l; //deque<elt> d; |
J'ai besoin de trier par x puis par y.
Méthode envisagée :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
void MaClasse::Insertion(elt e)
{
list<elt>::iterator i=l.begin();
for(;i!=l.end();i++)
{
if( (l->x) == e.x)
// cherche le y
while((i!=l.end()) && ((l->y) > e.y))
i++;
else
if( (l->x) > e.x)
break; // tu es supérieur, tu arrêtes...
}
// arrivée ici, i pointe sur l'élément AVANT lequel tu dois insérer (il pointe sur l.end() si tu dois insérer à la fin)
// cf l.insert() ...
} |
Ma question est simple :
Y'a t'il d'autres structures plus performantes pour faire ce que je veux faire ?
Dans le cas de la multimap, x serait ta clé, et il y aurait une fonction de hashage sur le x (en gros, ca peut être une bonne solution si tu fais presque toutes tes recherches sur un élt : en l'occurence x). Je pense pas que ce soit une meilleure solution...
QU'en pensez vous ?
Merci :D