C++中的sort函数
时间: 2023-11-14 18:21:06 浏览: 83
sort函数是C语言标准库中的一个函数,可用于对数组或向量等容器进行排序操作。其函数原型如下:
```c
void sort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
```
参数说明:
- `base`:待排序的数组或向量指针;
- `nmemb`:数组或向量元素个数;
- `size`:每个元素的大小;
- `compar`:指向比较函数的指针。
比较函数`compar`的作用是指定两个元素的比较规则,其函数原型如下:
```c
int compar(const void *a, const void *b);
```
比较函数需要返回一个整数值,表示两个元素的大小关系:
- 若返回值小于0,则表示a<b;
- 若返回值等于0,则表示a=b;
- 若返回值大于0,则表示a>b。
示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int compar(const void *a, const void *b)
{
return *(int *)a - *(int *)b;
}
int main()
{
int a[5] = {3, 1, 4, 2, 5};
int n = 5;
sort(a, n, sizeof(int), compar);
for (int i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
输出结果:
```
1 2 3 4 5
```
以上代码演示了如何使用sort函数对整型数组进行排序。在compar函数中,我们使用了指针强制类型转换,将指针a和b转换为整型指针,然后再通过解引用操作,获取它们所指向的整型值进行比较。
阅读全文