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

C++实现对结构体信息排序

思路解读:

  1. 定义结构体 Student:

    • 结构体 Student 用来表示学生信息,包含两个成员变量:name(学生姓名)和 score(学生分数)。
    • Student 结构体定义了一个构造函数,用于初始化 namescore
  2. 定义比较函数 compareStudents:

    • 该函数用于比较两个 Student 对象的分数,用于排序。
    • 比较函数返回 true 表示第一个学生的分数大于第二个学生,实现降序排序。如果需要升序排序,则可以修改比较条件为 a.score < b.score
  3. main 函数中执行以下步骤:

    • 创建一个 std::vector<Student> 容器来存储学生信息,初始化时添加了四个学生对象。
    • 使用标准库函数 std::sort 对学生列表进行排序。std::sort 函数接收三个参数:开始迭代器、结束迭代器和比较函数。这里使用 compareStudents 函数来按照分数进行降序排序。
    • 排序完成后,遍历排序后的学生列表,并输出每个学生的姓名和分数。
graph TDA[开始] --> B[定义 Student 结构体]B --> C[定义构造函数]C --> D[定义 compareStudents 比较函数]D --> E[在 main 函数中创建学生列表]E --> F[使用 std::sort 进行排序]F --> G[输出排序后的学生信息]G --> H[结束]
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>// 定义学生信息结构体
struct Student {std::string name;int score;// 构造函数Student(const std::string& name, int score) : name(name), score(score) {}
};// 比较函数,用于按分数排序
bool compareStudents(const Student& a, const Student& b) {return a.score > b.score; // 降序排序,如果需要升序排序则使用a.score < b.score
}int main() {// 创建学生信息列表std::vector<Student> students = {{"Alice", 90},{"Bob", 85},{"Charlie", 95},{"David", 80}};// 使用标准库sort函数进行排序std::sort(students.begin(), students.end(), compareStudents);// 输出排序后的学生信息std::cout << "Sorted student list:" << std::endl;for (const auto& student : students) {std::cout << student.name << ": " << student.score << std::endl;}return 0;
}
http://www.lryc.cn/news/396529.html

相关文章:

  • [CTF]-PWN:House of Cat堆题型综合解析
  • 18.按键消抖模块设计(使用状态机,独热码编码)
  • 【Hec-HMS】第一期:模型简介及软件安装
  • 逻辑回归不是回归吗?那为什么叫回归?
  • Activity对象的部分常见成员变量
  • 量化交易策略:赌徒在股市会运用凯利公式(附python代码)
  • 信息系统项目管理师【一】英文选择题词汇大全(1)
  • 怎么判断自己是否适合学习PMP?
  • 最新的数据防泄密方案来袭!
  • Python数据处理之高效校验各种空值技巧详解
  • Spring Boot与RSocket的集成
  • UI Toolkit generateVisualContent的使用
  • 第十六章 ValidationPipe验证post请求参数
  • HippoRAG如何从大脑获取线索以改进LLM检索
  • 求函数最小值-torch版
  • 如何将HEVC格式的视频转换为无损、未压缩的MP4格式视频?
  • 自定义在线活动报名表单小程序源码系统 源代码+搭建部署教程 可二次定制开发
  • 数据分析入门指南:表结构数据(三)
  • 凌凯科技前五大客户依赖症加剧:研发费用率骤降,应收账款大增
  • 5 科大讯飞AI大赛:热力学定律的电池材料生产参数动态调控
  • 概论(二)随机变量
  • Apache AGE 安装部署
  • Python29 Tensorflow的基本知识和使用
  • Linux操作系统上用到的磁盘分区管理工具
  • Python数据结构的库之Fuk使用详解
  • 【STM32学习】cubemx配置,串口的使用,串口发送接收函数使用,以及串口重定义、使用printf发送
  • 复现MiDAS文章:文章数据和代码
  • 【Python专栏】Python的历史及背景介绍
  • web端已有项目集成含UI腾讯IM
  • IF不降反增!审稿速度,比我家网速还快!3本接受率高的医学期刊,赶紧码住!