lsmCC 发表于 2023-10-10 17:46:35

pair存时间再进行排序会按照时间大小默认排好序吗?

pair<pair<int, int>, int> a;
sort(a,a+n);

isdkz 发表于 2023-10-10 17:46:46

不会。pair默认按照第一个元素排序,如果第一个元素相等,则按照第二个元素排序。在这个例子中,pair的第一个元素是一个pair<int, int>类型,sort函数会默认按照这个pair的第一个元素排序,也就是按照第一个int类型排序。如果想要按照第二个int类型排序,可以使用自定义的比较函数,或者使用lambda表达式来进行排序。

Mike_python小 发表于 2023-10-10 17:47:52

是的,按照 pair 类型的元素默认会进行字典序排序。也就是说,首先比较第一个 pair 类型元素中的第一个数据成员(时),如果相同再比较第二个数据成员(分),如果还相同就按照第二个元素(即 int 类型的秒)比较。

因此,在题目中,虽然没有明确给出排序的方式,但是我们可以根据要求调整排序方式。例如,如果要按照时间从早到晚进行排序,就需要编写自定义的比较函数来实现。

如果你需要按照题目给出的要求,对秒进行降序排列,可以参考我在上一个问题中的回答,使用自定义比较函数实现。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: pair存时间再进行排序会按照时间大小默认排好序吗?