首页 > 其他分享 >结构体排序 sort排序

结构体排序 sort排序

时间:2023-05-30 23:45:23浏览次数:30  
标签:sort include int stu 结构 排序 cmp

首先,在学习c的时候,应该学了很多排序方法吧,类似于冒泡排序呀,选择排序,插入排序,快排呀等等,但是,在c++中,有一个很好的排序就是sort排序,在stl里面,sort排序可以说,无论是时间复杂度还是空间复杂度,都是很优化的,这就足以见证sort排序的强大了,也说明sort排序的重要性。

在C++中使用sort()函数需要使用#include<algorithm>头文件,算法的常用头文件,不过多解释啦,当然,你写万能头文件也是可以的;

sort()函数可以对给定区间所有元素进行排序。它有三个参数sort(begin, end, cmp),其中begin为指向待sort()的数组的第一个元素的指针,end为指向待sort()的数组的最后一个元素的下一个位置的指针,cmp参数为排序准则,cmp参数可以不写,如果不写的话,默认从小到大进行排序。如果我们需要按照其他的排序准则,那么就需要我们自己定义一个bool类型的函数来传入。比如我们对一个整型数组进行从大到小排序:

#include<iostream>
#include<algorithm>
using namespace std;

bool cmp(int x,int y){
    return x> y;
}

int main(){
    int num[10] = {65,59,96,13,21,80,72,33,44,99};
    sort(num,num+10,cmp);
    for(int i=0;i<10;i++){
        cout<<num[i]<<" ";
    }//输出99 96 80 72 65 59 44 33 21 13
    
    return 0;
    
} 
sort排序(有大到小,cmp)

当然,这只是最基础的,cmp的用法常常是对结构体进行排序,比如说给了你一个结构体来存储学生的信息,按照成绩来排序,那么这个时候就需要用cmp排序啦;

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
struct Student {
    string name;
    int score;
};//学生的结构体

bool cmp(Student x, Student y) {
    return x.score > y.score;
}//排序

int main() {
    Student stu[3];
    string n;
    int s;
    for (int i = 0; i < 3; i++) {
        cin >>stu[i].name >> stu[i].score;
    }
    sort(stu, stu + 3, cmp);
    for (int i = 0; i < 3; i++) {
        cout << stu[i].name << " " << stu[i].score << endl;
    }

    return 0;
}
cmp结构体排序

好啦,这里,是不是对sort排序有了一个大致的了解啊。

标签:sort,include,int,stu,结构,排序,cmp
From: https://www.cnblogs.com/haggard/p/17444853.html

相关文章

  • ES搜索排序,文档相关度评分介绍——Vector Space Model
    VectorSpaceModelThe vectorspacemodel providesawayof comparingamultitermqueryagainstadocument.Theoutputisasinglescorethatrepresentshowwellthedocumentmatchesthequery.Inordertodothis,themodelrepresentsboththedocumentan......
  • 排序(快排/归并/堆排/冒泡)
    912.排序数组稳定排序:如果a原本在b前面,且a==b,排序之后a仍然在b前面。非稳定排序:如果a原本在b前面,且a==b,排序之后a不一定在b前面。原地排序/非原地排序:区别在于是否使用额外的数组辅助排序快排快排不稳定平均时间复杂度\(O(n\logn)\)简单快......
  • qsort排序的用法
    //voidBubble_sort(intarr[],intsz)//{// inti=0;// for(i=0;i<sz-1;i++)//确定排序执行的次数// {// intj=0;// for(j=0;j<sz-1-i;j++)//确定每次排序两组元素的对比次数// {// inttmp=0;// if(arr[j]>arr[j+1])// {// tmp=......
  • leetcode 378. Kth Smallest Element in a Sorted Matrix
    Givenanxnmatrixwhereeachoftherowsandcolumnsaresortedinascendingorder,findthekthsmallestelementinthematrix.Notethatitisthekthsmallestelementinthesortedorder,notthekthdistinctelement.Example:matrix=[[1,5,9......
  • leetcode 83. Remove Duplicates from Sorted List
    Givenasortedlinkedlist,deleteallduplicatessuchthateachelementappearonlyonce.Forexample,Given1->1->2,return1->2.Given1->1->2->3->3,return1->2->3.#Definitionforsingly-linkedlist.#classListNode(object)......
  • 结构体就算不用构造函数也可以初始化
    标题结构体就算不用构造函数也可以初始化#include<iostream>#include<vector>#include<algorithm>#include<string>#include<queue>#include<set>usingnamespacestd;structstateAndLevel{ stringstr; intlevel;};queue<stateAndLevel>......
  • 打印树形结构(可视化二叉树)
    平时开发时,偶尔会操作二叉树,而查看二叉树的结构,是一种比较费时的事情,我们可以把它按照本身的结构打印出来,从而方便查看。例如Nodea=newNode(110);Nodeb=newNode(105);Nodec=newNode(115);Noded=newNode(102);Node......
  • 循环结构
    今日重点:1.为什么使用循环在某种场景(多次重复做同一件事的情况下)需要使用循环结构提高效率2.while循环结构语法while(循环条件){循环操作循环退出语句}3.调试程序的步骤(重难点) 1.为什么需要程序调试场景:当代码遇到没有编译报错,但是有业务逻辑错误,......
  • 算法与数据结构高手养成-求职提升特训
    算法与数据结构高手养成-求职提升特训download:3w51xuebccom算法和数据结构是计算机科学中非常重要的概念。它们不仅在编程中扮演了关键角色,而且在其他领域如人工智能、机器学习和物联网等也具有广泛的应用。本文将介绍算法和数据结构的定义和重要性。算法的定义算法是指一组用于......
  • C++结构体对齐详解
    内存对齐是一种提高内存访问速度的策略,CPU在访问未对齐的内存可能需要经过两次的内存访问,而经过内存对齐一次就可以了cout<<"char:"<<sizeof(char)<<endl;cout<<"int:"<<sizeof(int)<<endl;cout<<"short:"<<sizeof(short)<<endl;cout&l......