Bonjour,
J'ai défini dans une même classe un tableau tab et une fonction de comparaison comp_decr se servant de ce tableau.
Maintenant, je tente d'utiliser la fonction list::sort avec cette fonction de comparaison (à l'intérieur d'une méthode de la classe), mais apparemment, le compilateur n'aime pas trop.
Voilà mon code:
test_sort.h :
test_sort.cpp :
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 #ifndef TEST_H #define TEST_H #include <vector> using namespace std; class Classe_sort { public: vector<int> tab; int size; bool comp_decr(int i, int j); // Fonction de comparaison void fonction(); }; #endif
Et voilà l'erreur rendue par le compilateur:
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
23
24
25
26
27
28
29
30
31
32
33
34 #include <vector> #include <list> #include <iostream> #include "Test_sort.h" using namespace std; bool Classe_sort::comp_decr(int i, int j) { return (tab[i]>tab[j]); } void Classe_sort::fonction() { list<int> order; tab[0] = 2; tab[1] = 1; tab[2] = 3; tab[3] = 0; size = 3; for(int i=0;i<4;i++) { order.push_front(i); } // Tri selon les valeurs de tab décroissants order.sort(comp_decr); // Affichage de la liste while (!order.empty()) { cerr << order.front() << " "; order.pop_front(); } cerr << endl; }
Test_sort.cpp: In member function ‘void Classe_sort::fonction()’:
Test_sort.cpp:26: error: no matching function for call to ‘std::list<int, std::allocator<int> >::sort(<unresolved overloaded function type>)’
/usr/include/c++/4.4/bits/list.tcc:301: note: candidates are: void std::list<_Tp, _Alloc>::sort() [with _Tp = int, _Alloc = std::allocator<int>]
/usr/include/c++/4.4/bits/list.tcc:378: note: void std::list<_Tp, _Alloc>::sort(_StrictWeakOrdering) [with _StrictWeakOrdering = bool (Classe_sort::*)(int, int), _Tp = int, _Alloc = std::allocator<int>]
Quelqu'un a-t-il une idée pour m'en sortir?
Partager