sort函数c++用法
时间: 2023-07-24 22:08:34 浏览: 166
浅析C/C++中sort函数的用法
在 C++ 中,sort 函数用于对数组或容器进行排序。它的用法可以简单地概括为:
```c++
sort(start_iterator, end_iterator)
```
其中,`start_iterator` 表示要排序的序列的起始位置的迭代器,`end_iterator` 表示序列的结束位置的迭代器。
例如,对一个整型数组进行排序的代码如下:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int arr[] = {10, 7, 8, 9, 1, 5};
int n = sizeof(arr)/sizeof(arr[0]);
sort(arr, arr+n);
cout << "Sorted array is: \n";
for (int i=0; i<n; i++)
cout << arr[i] << " ";
return 0;
}
```
输出结果为:
```
Sorted array is:
1 5 7 8 9 10
```
除此之外,sort 函数还可以接受一个可选的比较函数作为第三个参数,用于指定排序的方式。如果不传入比较函数,则默认按照从小到大的方式排序。
比较函数的原型通常为:
```c++
bool cmp(const Type& a, const Type& b)
```
其中,`Type` 表示排序的类型。比如,对于一个整型数组,`Type` 就是 `int`。
比较函数应该返回一个布尔值,表示两个元素的大小关系。如果返回值为 `true`,则表示第一个元素应该排在第二个元素的前面。
以下是一个使用比较函数对字符串数组进行排序的例子:
```c++
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
bool cmp(string a, string b)
{
return a.size() < b.size();
}
int main()
{
string arr[] = {"apple", "banana", "orange", "kiwi"};
int n = sizeof(arr)/sizeof(arr[0]);
sort(arr, arr+n, cmp);
cout << "Sorted array is: \n";
for (int i=0; i<n; i++)
cout << arr[i] << " ";
return 0;
}
```
输出结果为:
```
Sorted array is:
kiwi apple banana orange
```
以上就是 sort 函数的主要用法。
阅读全文