注意:
int、char、string之类的是可以之间使用>,<,==之类的进行判断,char*类型的使用strcmp就行了
而struct与vector都可以当做数组进行处理,cmp函数传递值的类型,是数组中单个元素类型所决定的。不同的是vector向量
的起始迭代位置是使用a.begin()来表示,同时也可以使用a.begin()+k,来调整迭代指针的位置
使用qsort对数组进行排序(int、char、char*、struct等等)
定义qsort中的cmp函数 //返回-1表示不需要进行交换,返回1表示需要进行交换 //传递的参数是const void*,需要在函数体内部进行强制类型转换后,在进行返回值的判定 int cmp(const void *a,const void *b) { Student *a1,*b1; a1 = (Student*)a; b1 = (Student*)b; if( a1->data!=b1->data ){ return a1->data<b1->data?-1:1;//由小到大进行排序 }else{ return a1->number<b1->number?-1:1; } } 调用qsort //必须包含头文件 #include<stdlib.h> //参数s,表示等待排序的数组的起始位置,s表示从s[0]开始,s+k表示从s[k]开始 //参数5,表示从起始位置开始,连续多少个元素参与排序 //参数sizof(Student),表示参与排序的单个元素的内存空间大小 //参数cmp,表示qsort中的cmp函数 qsort(s,5,sizeof(Student),cmp);实例代码:
#include<stdio.

本文介绍了C++中使用qsort和sort进行排序的方法。对于int、char、string等基本类型,可以直接使用比较操作符。对于char*,可以使用strcmp。struct和vector可以作为数组处理,cmp函数依赖于元素类型。对于vector,使用begin()和begin()+k调整迭代器。qsort适用于多种类型数组的排序,而sort则能方便地对vector进行排序,并且默认按升序排列。如果需要自定义比较函数,则可以根据具体数据类型来实现。

4372

被折叠的 条评论
为什么被折叠?



