Bonsoir,
Je cherche désespéremment à trier un std::map<MA_STRUCTURE*, MA_VALUE*> avec std::sort mais rien à faire ca ne compile pas
J'ai du loupé quelque chose, ca marche très bien avec un std::vector mais pas avec une std::map.
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
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);
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![]()
Partager