Функция сравнения, которую вы предоставили, имеет сигнатуру, необходимую для qsort
, которая является функцией сортировки, предоставленной C до появления C ++. sort
требует совершенно другой функции.
Например, если ваше объявление distanceList
равно std::vector<DistanceNode>
, ваша функция будет выглядеть так:
static bool CompareIt(const DistanceNode &sol1, const DistanceNode &sol2)
{
return sol1.key < sol2.key;
}
Обратите внимание, что сортировка std::list
со стандартным алгоритмом sort
неэффективна, поэтому list
предоставляет свою собственную sort
функцию-член.