我的爱如开水 2020-09-17 07:52 采纳率: 0%
浏览 74

[cpp]comp方法在sort()中具体实现

comp方法需要两个arguments,然后返回bool类型,如果为true则表明第一个argument应该在第二之前,否则在后面。

bool f1(int i, int j) { 
    return (i+1) % 2 < (j+1) % 2;
}

list<int> l4 {11, 2, 31, 4, 1};
l4.sort(f1);

这个的输出结果是11 31 1 2 4。 请问各个元素之间是怎么比较的呢?是相邻之间进行比较还是每个元素和剩余所有元素进行比较从而得到最终的顺序呢?初学cpp望多多指教。

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-09-17 09:16
    关注

    这个要看sort怎么调用的f1
    假设是冒泡算法,就是相邻的比较,有的排序算法不一定。比如选择排序就是依次让某个元素和之后的所有元素比较(每次比较调用一次f1)

    评论

报告相同问题?

悬赏问题

  • ¥15 用matlab求微分方程初值问题
  • ¥15 vscode下编写第三方库opencv与pcl代码时没有代码提示
  • ¥15 能够跑通不报错,如何解决?(标签-matlab)
  • ¥15 MOS在RDS较大,频率高时开关波形异常
  • ¥15 SCENIC分析报错求解答
  • ¥15 ceph初始化mon不成功 下图不报错 这个是什么元
  • ¥15 数学建模数学建模少ai
  • ¥35 这个等效电路图是什么意思?(答疑)(有没有不是chat的,我就是在chat搜不到才来问的,chat还开了VIP)(可以追加酬金)
  • ¥200 基于同花顺supermind的量化策略脚本编辑
  • ¥15 黄永刚的晶体塑性子程序中输入的材料参数里的晶体取向参数是什么形式的?