c++快排的数据类型
时间: 2023-12-06 14:35:50 浏览: 129
C++快排的数据类型可以是任何基本数据类型,如char、int、float、double等,也可以是自定义的结构体类型。在快排中,需要自定义比较函数,以便在排序时进行比较。比较函数的参数类型为const void*,需要进行强制类型转换后才能进行比较操作。下面是两个例子:
1. 对整型数组进行快排
```c++
int Comp(const void *p1, const void *p2) {
return (*(int *)p1 - *(int *)p2);
}
int main() {
int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
int n = sizeof(arr) / sizeof(int);
qsort(arr, n, sizeof(int), Comp);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
2. 对结构体数组按照data字段进行排序
```c++
struct Node {
double data;
int other;
} s[100];
int Comp(const void *p1, const void *p2) {
return (*(Node *)p2).data - (*(Node *)p1).data;
}
int main() {
// 初始化结构体数组s
int n = sizeof(s) / sizeof(Node);
qsort(s, n, sizeof(s[0]), Comp);
// 输出排序后的结果
for (int i = 0; i < n; i++) {
cout << s[i].data << " ";
}
return 0;
}
```
阅读全文