У меня небольшая проблема с qSort. Я просто хочу отсортировать свой список после добавления вершины в свой QList m_acceptedVertices.
bool Vertex::greaterThan(Vertex * v1, Vertex *v2){
return this->computeDistanceTo(v1) > this->computeDistanceTo(v2);
}
void Vertex::acceptVertex(Vertex* vert)
{
m_acceptedVertices.append(vert);
qSort(m_acceptedVertices.begin(), m_acceptedVertices.end(), greaterThan);
}
Но я все еще получаю эти ошибки:
Fehler: C3867: 'Vertex::greaterThan': в вызове функции отсутствует список аргументов; используйте '&Vertex::greaterThan', чтобы создать указатель на элемент
Fehler: C2780: 'void qSort (Container &)': ожидается 1 аргумент - предоставлено 3
Fehler: C2780: 'void qSort (RandomAccessIterator, RandomAccessIterator)': ожидает 2 › аргумента - предоставлено 3
Что я делаю не так? Кто-нибудь может мне помочь? Спасибо!
greaterThan
должен вернутьint
, а неbool
(по крайней мере, дляqsort
-- не знаю насчетqSort
). - person TonyK   schedule 26.07.2014computeDistanceTo
, вероятно, немного дороже, и сортировка всей коллекции после каждой вставки может быть не лучшей идеей. Вы рассматривалиstd::set
? - person Greg   schedule 26.07.2014