c++ sort函数用法
时间: 2023-10-13 20:27:19 浏览: 146
C语言的sort函数是对一个数组进行排序的函数,其用法如下:
```
void qsort(void *base, size_t num, size_t size, int (*compar)(const void *, const void *));
```
其中,base是指向待排序数组的指针;num是数组元素的个数;size是数组中每个元素的大小;compar是比较函数的指针,用来指定元素之间的比较规则。
一个简单的例子是对整型数组进行排序:
```
#include <stdio.h>
#include <stdlib.h>
int cmpfunc (const void * a, const void * b) {
return ( *(int*)a - *(int*)b );
}
int main () {
int arr[] = {10, 5, 8, 1, 6, 7};
int n = sizeof(arr) / sizeof(int);
qsort(arr, n, sizeof(int), cmpfunc);
for(int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
1 5 6 7 8 10
相关问题
C++ sort函数用法
C++中的sort函数是STL标准库中的一个排序算法,可以用来对数组或容器中的元素进行排序。它的基本用法如下:
1. 包含头文件:`#include <algorithm>`
2. 使用sort函数进行排序:
```
std::sort(begin_iterator, end_iterator);
```
其中,`begin_iterator`和`end_iterator`分别是要排序元素的起始迭代器和终止迭代器。可以是数组的指针或容器的迭代器。
3. 示例代码:
```cpp#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> nums = {5,2,9,1,6};
std::sort(nums.begin(), nums.end());
for (int num : nums) {
std::cout << num << " ";
}
return0;
}
```
以上代码会对vector中的元素进行升序排序,并输出排序结果。
除了基本用法外,sort函数还可以接受自定义的比较函数作为参数,用于实现自定义的排序方式。具体用法可以参考C++ STL文档或相关教程。
c++sort函数用法
C++标准库中的`std::sort`函数是用于对容器(如`std::vector`, `std::array`, 或自定义容器)中的元素进行排序的成员函数。它使用快速排序算法(通常有优化版本),对元素进行升序排列。`sort`函数的基本用法如下:
```cpp
template <class RandomIt>
void sort(RandomIt first, RandomIt last);
```
这里的`first`参数是要排序的范围的第一个元素的迭代器,`last`参数是排序范围的结束位置(不包含该元素)。
如果容器中的元素是非可比较的,或者需要自定义排序规则,可以提供一个比较函数或三元操作符作为第二个参数:
```cpp
template <class RandomIt, class Compare>
void sort(RandomIt first, RandomIt last, Compare comp);
```
或者
```cpp
template <class RandomIt>
void sort(RandomIt first, RandomIt last, bool (*pred)(RandomIt, RandomIt));
```
其中,`Compare`是一个对象,或者是满足`bool Compare(const T& a, const T& b)`签名的函数指针,用来指定元素间的比较规则;`pred`是一个返回`bool`值的函数指针,接受两个迭代器作为参数,表示它们所指向的元素之间的关系。
例子:
```cpp
std::vector<int> v = {5, 2, 9, 1, 5, 6};
std::sort(v.begin(), v.end()); // 对vector进行默认升序排序
// 自定义排序
std::sort(v.begin(), v.end(), std::greater<int>()); // 降序排序
// 使用比较函数
bool compare(const int& a, const int& b) { return a > b; }
std::sort(v.begin(), v.end(), compare); // 按照自定义规则排序
```
阅读全文