C++ sort函数详
时间: 2023-09-12 08:11:12 浏览: 101
C语言中的sort函数用于对数组或者其他容器进行排序。它是通过比较元素来实现排序的,可以根据需要使用不同的比较函数来实现不同的排序方式。
sort函数的原型如下:
```c
void sort(void* base, size_t num, size_t size, int (*compar)(const void*, const void*));
```
参数说明:
- `base`:指向待排序数组或容器的指针。
- `num`:待排序元素的个数。
- `size`:每个元素的大小,以字节为单位。
- `compar`:比较函数指针,用于指定元素之间的比较规则。
比较函数的原型如下:
```c
int compar(const void* a, const void* b);
```
参数说明:
- `a`、`b`:指向待比较的两个元素的指针。
比较函数返回值的含义:
- 若返回值小于0,则表示a应该排在b之前。
- 若返回值等于0,则表示a和b相等,它们的相对顺序不变。
- 若返回值大于0,则表示a应该排在b之后。
下面是一个使用sort函数对整型数组进行升序排序的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int compare(const void* a, const void* b) {
return (*(int*)a - *(int*)b);
}
int main() {
int arr[] = { 5, 2, 8, 1, 9 };
int n = sizeof(arr) / sizeof(arr[0]);
qsort(arr, n, sizeof(int), compare);
printf("排序后的数组:");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
排序后的数组:1 2 5 8 9
```
这是一个简单的示例,你可以根据具体的需求编写不同的比较函数,以实现不同的排序效果。
阅读全文