[C++] Trier un std::map par cl� => fonctionne pas
Bonsoir,
Je cherche d�sesp�remment � trier un std::map<MA_STRUCTURE*, MA_VALUE*> avec std::sort mais rien � faire ca ne compile pas :(
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
struct IdBloc
{
int id;
std::string name;
};
struct Bloc { ... }
// Foncteur
bool comp(const std::pair<IdBloc*, std::vector<Bloc*> >& a1,
const std::pair<IdBloc*, std::vector<Bloc*> >& a2
)
{
return a1.second < a2.second;
}
// Définition de la map
std::map<IdBloc*, std::vector<Bloc*> > m_blocs;
// Tente un tri qui compile pas
std::sort(m_blocs.begin(), m_blocs.end(), comp); |
J'ai du loup� quelque chose, ca marche tr�s bien avec un std::vector mais pas avec une std::map.
Normalement c'est possible de trier par cl� (je me demande m�me si c'est pas cens� �tre automatique ?) mais dans mon cas, la cl� n'est pas un type de base comme int, float, double... mais une structure donc il faut un "foncteur/pr�dicat de comparaison"
Merci � vous et bonne soir�e :)