当前位置: 首页 > article >正文

【C++】结构体排序+sort(),cmp()参数写法口诀

题目:从键盘输入10个学生的姓名和成绩,请按字典序排列学生的姓名并输出(姓名和成绩对应关系保持不变)[SLOJ1334]
·结构体排序要加自定义比较函数cmp.此时
①sort()函数参数写法:sort(数组起始,数组结尾的下一位置,比较函数)
②自定义比较函数cmp()参数写法口诀:const类型引用名【重要】
在这里插入图片描述

//从键盘输入10个学生的姓名和成绩,
//请按字典序排列学生的姓名并输出(姓名和成绩对应关系保持不变)
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

struct Student {
    string name;
    int score;
};

//【参数写法】//const类型引用名 
bool cmp(const Student &a, const Student &b) {
    return a.name < b.name; //按什么排序 
}

//bool compareByName(Student a,Student b){ //别这样写,串长点运行可能不行 
//    return a.name < b.name;
//}

int main() {
    Student students[999]; 
	
    for (int i=0;i<=9;i++){
//        cin >> students[i].name; //也AC,已试 
		getline(cin,students[i].name); 
    }
	
    for (int i=0;i<=9;i++){ 
        cin >> students[i].score;
    }
	 
    //【意识】结构体排序要加自定义比较函数cmp  
	//【参数写法】sort(数组起始,数组结尾的下一位置,比较函数) 
	sort(students,students+10,cmp);
	
    for (int i=0;i<=9; i++) {
        cout <<  students[i].name << "," << students[i].score << endl;
    }

    return 0;
}


http://www.kler.cn/a/552743.html

相关文章:

  • 社群共建与共享:以十点读书会为例探讨开源AI智能名片2+1链动模式S2B2C商城小程序的应用
  • 从C语言源码到可执行文件的生成过程通常包括
  • List<Map<String, Object>> 如何对某个字段求和
  • 25/2/18 <算法笔记> ByteTrack
  • 阿里云前端自动化部署流程指南
  • 《DeepSeek赋能工业互联网:解锁数据深度分析新姿势》
  • 【Elasticsearch】分页查询
  • Pycharm打开的jupyter notebook无法在pycharm中关闭怎么解决
  • el-table树状表格,默认展开第一个节点的每一层
  • 2024亚马逊数据分析!
  • lambda表达式thenComparing使用示例
  • Ubuntu 下创建具有 root 权限用户
  • Elasticsearch AI Assistant 集成 DeepSeek,1分钟搭建智能运维助手
  • 在nodejs中使用RabbitMQ(七)实现生产者确认
  • 私域流量运营中用户价值提升策略研究——以开源AI智能名片2+1链动模式与S2B2C商城小程序为例
  • 1-13 tortoiseGit忽略文件与文件夹
  • 深度学习模型常用激活函数集合
  • 智能硬件定位技术发展趋势
  • HarmonyOS:使用List实现分组列表(包含粘性标题)
  • 中电金信:数字基础设施未来展望·行业定制与开源融合