C++ sort函数用法
时间: 2023-09-21 14:09:29 浏览: 166
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); // 按照自定义规则排序
```
c++sort函数的用法
C++中的sort()函数可以对数组或容器中的元素进行排序,可以使用默认的排序方式,也可以自定义排序方式。sort()函数是基于头文件<algorithm>库下的一个函数,所以要调用sort(),就需要添加头文件。
以下是sort()函数的基本用法:
1.默认排序方式
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[] = { 2,4,7,1,3 };
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n); // 默认升序排序
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
输出结果为:1 2 3 4 7
2.自定义排序方式
```c++
#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a, int b) { // 自定义降序排序规则
return a > b;
}
int main() {
int arr[] = { 2,4,7,1,3 };
int n = sizeof(arr) / sizeof(arr[0]);
sort(arr, arr + n, cmp); // 自定义降序排序
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
输出结果为:7 4 3 2 1
阅读全文