c++学习笔记-----qsort通用排序函数
2017-07-07 07:37
288 查看
其实这个qsort函数运用的原理就是依赖最后一个形参传入编程人员自己构造的函数功能的函数指针,最后进行比较也会按照编程人员设计的函数来进行比较。
要想用到qsort函数,就需要包含stdlib.h中,
qsort函数的原型如下:
void qsort(void *, size_t nlem , size_t width , int (*fcmp) ( const void * , const void *))
//其中第一个参数为待排序数组的指针
第二个参数为数组中元素个数
第三个参数是元素类型的长度
第四个参数是函数指针。
源代码示例:
#include<iostream>
#include<stdlib.h>
using namespace std;
double sigma(double (*func)(double),double d1,double d2)
{
double dt = 0.0;
for(double d = d1;d < d2;d += 0.1)
{
dt += func(d);
}
return dt;
}
int compare(const void *a,const void *b)
{
return strcmp((char *)a,(char *)b);
}
int main()
{
char list[5][4] = {"cat","car","cab","cap","can"};
qsort((void *)list,5,sizeof(list[0]),compare);
for(int i = 0;i<5;i++)
{
cout<<list[i]<<"\t";
}
cout<<endl;
return 0;
}
以上是用qsort解决的排序问题。
要想用到qsort函数,就需要包含stdlib.h中,
qsort函数的原型如下:
void qsort(void *, size_t nlem , size_t width , int (*fcmp) ( const void * , const void *))
//其中第一个参数为待排序数组的指针
第二个参数为数组中元素个数
第三个参数是元素类型的长度
第四个参数是函数指针。
源代码示例:
#include<iostream>
#include<stdlib.h>
using namespace std;
double sigma(double (*func)(double),double d1,double d2)
{
double dt = 0.0;
for(double d = d1;d < d2;d += 0.1)
{
dt += func(d);
}
return dt;
}
int compare(const void *a,const void *b)
{
return strcmp((char *)a,(char *)b);
}
int main()
{
char list[5][4] = {"cat","car","cab","cap","can"};
qsort((void *)list,5,sizeof(list[0]),compare);
for(int i = 0;i<5;i++)
{
cout<<list[i]<<"\t";
}
cout<<endl;
return 0;
}
以上是用qsort解决的排序问题。
相关文章推荐
- c++ 模板学习笔记:函数模板实现数组通用排序和遍历打印(权哥)
- C++ 函数模板和排序的函数模板——学习笔记
- C++学习笔记:C++排序函数
- C++ 排序函数 sort(),qsort()的用法 / 同时可以学习回调函数
- C++学习笔记5---虚函数的工作原理
- c++学习笔记:void*变量,在函数内必须要明确变量类型
- C++中虚函数学习笔记
- C++学习笔记(3)——成员变量、成员函数的指针
- c++学习笔记之函数的调用和返回
- C/C++中关于地址、指针和引用变量的学习笔记(四) : 函数
- Inside the C++ Object Model 学习笔记 第四章 函数语意学
- C++学习笔记(13)——利用对象、引用、指针调用虚函数
- Selenium学习笔记之五:封装几个通用的函数
- Effective c++学习笔记——条款5:了解C++默默编写并调用哪些函数
- C++ 排序函数 sort(),qsort()的用法
- c++学习笔记:直接排序
- 在c++中qsort()排序函数的使用qsort函数应用大全
- C++ 排序函数 sort(),qsort()的用法
- c++学习笔记:直接排序
- C++ 排序函数 sort(),qsort()的用法