在 C++ 中按对排序
Sorting on pairs in c++
我正在为 activity 时间表问题编写代码。如果我将开始时间和结束时间存储在像 pair<int,int>p[10]
这样的对数组中,然后我需要根据完成时间对活动进行排序,并增加完成时间,省略了要求用户输入然后制作的部分为简单起见,希望这个人回答不会有问题,所以我申请 sort(p,p+n)
,其中 n 表示没有活动,我不喜欢它会以这种方式对所有开始活动或结束活动进行排序这 way.So 这是代码。pair <int,int>p[10]
Sort(p,p+6)
排序pair
时,比较第一项,只有当它们相等时,才比较第二项。所以这不会按结束时间排序,而是按开始时间排序。但是 sort
可以有第三个参数,它是一种用于排序的方法(它 returns 第一个参数是否在第二个之前)。向那里传递一个将比较第二项(完成时间)的 lambda。
它按照开始时间的递增顺序对活动进行排序,即每对中的第一个元素与第二对中的第一个元素进行比较,依此类推。 .假设(7,9),(0,10),(4,5),(8,9),(4,10),(5,17)是开始时间和结束时间,那么排序后的结果将是是 (0,10)(4,5),(4,10),(5,17),(7,9),(8,9).
我正在为 activity 时间表问题编写代码。如果我将开始时间和结束时间存储在像 pair<int,int>p[10]
这样的对数组中,然后我需要根据完成时间对活动进行排序,并增加完成时间,省略了要求用户输入然后制作的部分为简单起见,希望这个人回答不会有问题,所以我申请 sort(p,p+n)
,其中 n 表示没有活动,我不喜欢它会以这种方式对所有开始活动或结束活动进行排序这 way.So 这是代码。pair <int,int>p[10]
Sort(p,p+6)
排序pair
时,比较第一项,只有当它们相等时,才比较第二项。所以这不会按结束时间排序,而是按开始时间排序。但是 sort
可以有第三个参数,它是一种用于排序的方法(它 returns 第一个参数是否在第二个之前)。向那里传递一个将比较第二项(完成时间)的 lambda。
它按照开始时间的递增顺序对活动进行排序,即每对中的第一个元素与第二对中的第一个元素进行比较,依此类推。 .假设(7,9),(0,10),(4,5),(8,9),(4,10),(5,17)是开始时间和结束时间,那么排序后的结果将是是 (0,10)(4,5),(4,10),(5,17),(7,9),(8,9).