Как отсортировать дек наборов с помощью компаратора - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть набор наборов с именем golfTrails.

  • Наборы являются указателями на объект типа GolfCourse *.

    ПРИМЕЧАНИЕ.есть пустые предметы.

GolfCourse - это объект, который имеет поля:

GolfCourse

{

  • int courseId;

  • string courseName;

  • float courseSlope;

}

  • Наборы сортируются с помощью sortfunctor на основе courseId.
  • courseId - счетчик с 1 увеличением.

Я бы хотел отсортировать дек на основенаименьший идентификатор курса в каждом элементе в deque.

Например,

  • запись 1 (т. е. набор) в deque имеет курсы с номерами курсов 2, 4,7, 10

  • запись 2 в deque имеет курсы с идентификаторами курсов 3, 5, 6

  • запись 3 пуста

  • запись 4 в deque имеет курсы с курсом Ids 1, 8, 9

Конечный результат этого вида должен быть:

  • запись 4

  • запись 1

  • запись 2

  • запись 3 (мне все равно, будет ли запись 3 первой или последней)

Как я уже говорил ранее, наборы расположены в отсортированном порядке на основе courseId, а элементы в наборах являются указателями на объекты.

Если я пытаюсь отсортировать заявкувот так:

 sort(golfTrails.begin(), golfTrails.end()) 

сортирует по адресу указателя.Это не то, что я хочу сделать.Я хочу отсортировать на основе courseId объекта, который находится по этому адресу.

Я не могу понять, как это сделать.Я попытался создать оператор сравнения, чтобы передать сортировку, и я попытался создать функтор, который будет использоваться при определении deque.Может быть, это не может быть сделано?

Спасибо за вашу помощь!

...