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 : 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);
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