У меня есть функция в заголовке сортировки для mergeSort
Это мой код:
template
void mergeSort(vector<Comparable> & a, vector<Comparable> & tmpArray, int left int right, Comparator cmp)
{
if (cmp(left,right))
{
int center = (left + right) / 2;
mergeSort(a, tmpArray, left, center);
mergeSort(a, tmpArray, center + 1, right);
merge(a, tmpArray, left, center + 1, right);
}
}
Я хочу использовать этот компаратор и передать впараметры в моем mainDriver.cpp
class CompareXCoordinate {
public:
bool operator()(const Point & p1, const Point & p2) const
{
return (p1.getX() < p2.getX());
}
};
В настоящее время я передаю его так:
Точки - это вектор объектов Point. tempArr - пустой вектор
mergeSort(points, tempArr, points.begin(), points.end(), Point::CompareXCoordinate::operator())
Iполучить ошибку C3867: нестандартный синтаксис, использовать &, чтобы создать указатель на элемент
Это правильный способ передачи компаратора или другой синтаксис?