佳减乘除。 2024-01-10 10:05 采纳率: 0%
浏览 8

c++ cmp与sort

sort函数与cmp函数之间的问题。

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int a[110]  , n;
bool cmp(int a1 , int b1 ){
    return a1 < b1 ;
}
int main(){
    cin >> n ;
    for(int i = 1 ; i <= n ; i++) cin >> a[i];
    sort(a + 1 , a  + n + 1 ,cmp);
    for(int i = 1 ; i <= n ; i++) cout << a[i] << endl;
    return 0;
}

cmp函数返回值类型是bool,return 的是 true 或者false
sort函数第三个参数是 排序规则。
自我理解的就是cmp传递到sort里就是 true 或者false(理论上应该不是,但是具体是什么求解答)
但是sort函数第三个参数,直接设为true/false 就会报错。

#include<bits/stdc++.h>
#include<iostream>
using namespace std;
int a[110] , n;
int main(){
    cin >> n ;
    for(int i = 1 ; i <= n ; i++) cin >> a[i];
    sort(a + 1 , a  + n + 1  , 1 );
    for(int i = 1 ; i <= n ; i++) cout << a[i] << endl;
    return 0;
}
  • 写回答

2条回答 默认 最新

  • 真相重于对错 2024-01-10 12:07
    关注

    你的想法是错误的
    sort 是要调用cmp 获得结果
    大致代码

    if(cmp(a,b))
      swap(....)
    
    

    你直接传一个值是不可以的,因为它要调用,而不是直接读取

    评论

报告相同问题?

问题事件

  • 创建了问题 1月10日

悬赏问题

  • ¥20 c#使用NPOI向word表格中添加字段导致word有概率警告不可识别
  • ¥15 怎么使用hxe16进制编码器修改视频数据和图片一样!求教程!
  • ¥15 怎么用python模拟光的折射,反射,和全反射
  • ¥15 python打印机打印word和PDF文件出来的是乱码
  • ¥15 求达梦8数据库安装包
  • ¥15 YOLOv8模型网络结构更改后报错
  • ¥15 深度学习中梯度为None
  • ¥15 zynq烧写程序到flash后不运行
  • ¥15 裸板ESD问题的思考与实验
  • ¥15 electron+python