结构体sort快速排序

本文介绍如何使用C++对包含多个元素的结构体数组进行快速排序,探讨排序算法在结构体场景的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结构体sort快速排序

#include<stdio.h>
#include<algorithm>

using namespace std;

struct p{
    int a;
    int b;
}q[100];

bool cmp(p al,p bl)
{
    return al.a>bl.a;
}

int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
        scanf("%d %d",&q[i].a,&
### C++ 结构体实现快速排序 为了展示如何使用C++结构体来实现快速排序,下面提供了一个完整的例子。此示例定义了一个`Student`结构体,并实现了基于成绩字段对学生记录进行降序排序的功能。 #### 定义 `Student` 结构体以及比较函数 首先创建一个名为 `Student` 的结构体,其中包含学生的姓名和分数属性。接着编写一个用于比较两个学生对象的方法,该方法作为自定义排序准则传递给标准模板库中的 `std::sort()` 函数[^4]。 ```cpp #include <algorithm> #include <iostream> #include <string> struct Student { std::string name; int score; // 构造函数初始化成员变量 Student(std::string n, int s) : name(n), score(s) {} }; // 自定义比较器:按score降序排列 bool compareByScore(const Student& lhs, const Student& rhs) { return lhs.score > rhs.score; } ``` #### 使用 `std::sort` 对数组进行排序 接下来,在主程序中声明若干个 `Student` 类型的对象组成的数组,并调用 `std::sort()` 来对其进行排序。注意这里传入了指向数组首地址的指针以及长度参数,还有之前定义好的比较器[^3]。 ```cpp int main() { // 初始化一组学生成绩数据 Student students[] = { {"Alice", 87}, {"Bob", 92}, {"Charlie", 76}, {"David", 85}, {"Eve", 90} }; size_t numStudents = sizeof(students)/sizeof(students[0]); // 调用STL内置的sort算法完成排序工作 std::sort(&students[0], &students[numStudents], compareByScore); // 输出排序后的结果 for (size_t i = 0; i != numStudents; ++i){ std::cout << "Name: " << students[i].name << ", Score: " << students[i].score << '\n'; } return 0; } ``` 这段代码展示了如何利用C++结构体配合 STL 提供的强大工具集轻松达成复杂的数据处理需求。通过这种方式不仅可以简化编程逻辑而且提高了可读性和维护性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值