如何使用比较器对一组双端队列进行排序

问题描述 投票:1回答:1

我有一套双排球,名为golfTrails。

  • 这些集合是指向GolfCourse *类型的对象的指针。

    注意:golfTrail可能有空的物品。

高尔夫球场是一个具有以下字段的对象:

高尔夫课程

{

  • int courseId;

  • string courseName;

  • float courseSlope;

}

  • 这些集合通过基于courseId的sortfunctor进行排序。
  • courseId是一个1-up计数器。

我想根据双端队列中每个项目的最低CourseId对双端队列进行排序。

例如,

  • 双端队列中的第1个条目(即集合)具有带有课程编号2、4、7、10的课程

  • 双端队列中的条目2包含带有课程编号3、5、6的课程

  • 条目3为空

  • 双端队列中的条目4包含带有课程编号1、8、9]的课程>

  • 这种最终结果应该是:

  • entry 4

  • 条目1

  • entry 2

  • 条目3(我不太在乎条目3到底是第一个还是最后一个)

  • 正如我之前说过的,这些集合是基于CourseId排序的,并且集合中的项目是指向对象的指针。

如果我尝试像这样对双端队列进行排序:

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

它根据指针的地址进行排序。那不是我想做的。我想根据在该地址找到的对象的courseId进行排序。

我不知道该怎么做。我尝试创建一个比较运算符传递给排序,并且尝试创建一个仿函数来定义双端队列。也许无法完成?

感谢您的帮助!

我有一套双排球,名为golfTrails。这些集合是指向GolfCourse *类型的对象的指针。注意:golfTrails可能有空物品。 GolfCourse是一个具有...

sorting set deque
1个回答
0
投票

这是您的示例代码示例:

© www.soinside.com 2019 - 2024. All rights reserved.