Aquí está el código de problema que estoy tratando de compilar:¿Cómo puedo vencer este error de clasificación vectorial C++?
bool TeamMatcher::simpleComparator(Student first, Student second){
return (first.numberOfHrsAvailable < second.numberOfHrsAvailable);
}
void TeamMatcher::sortRosters(){
sort(rosterExcellent.begin(), rosterExcellent.end(), simpleComparator);
sort(rosterGood.begin(), rosterGood.end(), simpleComparator);
sort(rosterOK.begin(), rosterOK.end(), simpleComparator);
sort(rosterPoor.begin(), rosterPoor.end(), simpleComparator);
sort(rosterNoSay.begin(), rosterNoSay.end(), simpleComparator);
}
Entonces aquí está el error que estoy recibiendo:
TeamMatcher.C: In member function ‘void TeamMatcher::sortRosters()’:
TeamMatcher.C:51: error: no matching function for call to ‘sort(__gnu_cxx::__normal_iterator<Student*, std::vector<Student, std::allocator<Student> > >, __gnu_cxx::__normal_iterator<Student*, std::vector<Student, std::allocator<Student> > >, <unresolved overloaded function type>)’
/usr/include/c++/4.2.1/bits/stl_algo.h:2852: note: candidates are: void std::sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Student*, std::vector<Student, std::allocator<Student> > >, _Compare = bool (TeamMatcher::*)(Student, Student)]
Se repite este error para las cuatro clases restantes. No entiendo, básicamente estoy copiando/pegando esta solución desde aquí: http://www.cplusplus.com/reference/algorithm/sort/
¡Cualquier ayuda sería muy apreciada!
Agregó la directiva using namespace 'using namespace std;' a su archivo, si no es necesario que califique el nombre del algoritmo con 'std' namespace como' std :: sort'. –
Lo hice, al menos en mi archivo .h que importé en este archivo .C. Eso sigue siendo bueno ¿verdad? –
@Als: puede ver en el resultado del compilador que ya está viendo 'std :: sort' como candidato, lo que significa que ese no es el problema. – tzaman