C++中的sort()和qsort()和C中的二维数组传参
来源:互联网 发布:原子车车架数据 编辑:程序博客网 时间:2024/05/21 21:36
一.目的
最近刷题总会遇到排序,因为快排已经写了很多了,就想省些时间用一下C++中的排序函数。
对于二维数组传参,以前解决过好多次,但总会忘记,所以今天总结一下。
二.排序(头文件: algorithm)
1.sort():对给定区间所有元素进行排序
该函数有两个参数的形式和三个参数的形式。
例如:对于一个一维数组排序. int a[10];
两个参数:
sort(a, a+10);//两个参数默认是升序排列
三个参数:
sort(a, a+10, compare);//compare是一个由你自己定义的比较函数在这个函数里你可以它是升序还是降序。
compare函数的声明:
int compare(int a, int b);{ return a>b;//这里是降序, a<b是升序。}
2.qsort()
函数原型:
void qsort(void base, size_t nelem, size_t width, int (*fcmp)(const void,const void *))
输入参数:
Base:待排序的数组名
nelem:数组元数的个数(长度)
width:每一个元素所占存储空间的大小
fcmp:用于对数组元素进行比较的函数的指针(该函数是要自己写的)
例子:
对一个一维数组进行排序: int a[10];
qsort(a, sizeof(a), sizeof(int), compare);
具体代码
#include<iostream>#include<stdlib.h>using namespace std;int com(const void *a,const void *b){ return (*(int*)a-*(int*)b)<0; //降序 >0升序}int main(){ int a[10]; int i; for(i=0;i<10;++i) cin>>a[i]; qsort(a,10,sizeof(int),com); for(i=0;i<10;++i) cout<<a[i]<<" "; cout<<endl; return 0;}
三.二维数组传参
有两种方式:
例如:对一个二维数组排序 int a[10][5];
1.声明:
void sort(int a[][5]);//第二个括号内必须有列数
2.声明:
void sort(int (*a)[5]);//指针数组
0 0
- C++中的sort()和qsort()和C中的二维数组传参
- C&C++中的qsort和sort库函数
- c/c++中的sort()与qsort()用法
- C和C++库中的排序函数——sort与qsort解析
- Java中的二维数组和c语言中的二维数组的区别
- C语言中的二级指针和二维数组问题
- C语言中的二级指针和二维数组问题
- C语言中的二级指针和二维数组问题
- C语言中的二级指针和二维数组问题
- qsort和sort函数中的 cmp函数
- C qsort和C++ sort函数详解
- C语言中的二维数组
- 【C++】二维数组中的查找
- C中的二维数组打印
- Java中的数组和c中的数组
- 备忘——C标准库中的qsort和bsearch
- c中的qsort
- C语言中的qsort
- Android边边角角
- 设计模式之六大原则
- 时间类型转换-指定年的第几周开始时间和结束时间
- awk语法学习
- Maven中的DependencyManagement和Dependencies
- C++中的sort()和qsort()和C中的二维数组传参
- RedHat下安装mysql5.8
- stream_component_open
- 如何用eclispe远程调试tomcat
- github Host key verification failed
- Personal diary of MrWangc (0)
- 计算机网络(六)---IP多播
- 虚拟机 3种网络连接方式区别
- java中各种集合的用法和比较