Bonjour,
Je viens vous voir aujourd'hui car je ne parvient pas à convertir un conteneur..
Voici un morceau de code qui pourra expliquer mon problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 bool comparerSavingsGain (SavingsGain a, SavingsGain b) { return a.gain > b.gain; }
J'ai une erreur sur le "return" qui dit :
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 set<SavingsGain> Solution::creerGainsTries(Probleme &p) { unsigned n = p.getN(); vector<Sommet> sommets = p.getSommets(); double * * distances = p.getDistances(); bool(*fn_pt)(SavingsGain,SavingsGain) = comparerSavingsGain; set<SavingsGain,bool(*)(SavingsGain,SavingsGain)> gains(fn_pt); for (unsigned i = 1; i < n - 1; ++i) { for (unsigned j = i + 1; j < n; ++j) { SavingsGain s; s.route = make_pair(i, j); s.gain = distances[i][0] + distances[0][j] - distances[i][j]; gains.insert(s); } } return gains; }
Error : Il n'existe aucune conversion définie par l'utilisateur appropriée de "std::set<SavingsGain, bool (*)(SavingsGain, SavingsGain), std::allocator<SavingsGain>>" en "std::set<SavingsGain, std::less<SavingsGain>, std::allocator<SavingsGain>>"
Merci d'avance
et bonne journée
Partager