C++中sort函数用法
时间: 2025-01-01 18:36:53 浏览: 13
在C++中,`sort()` 函数是STL (Standard Template Library) 提供的一个非常重要的算法,用于对容器中的元素进行排序。它的基本语法如下:
```cpp
template <class RandomIt>
void sort(RandomIt first, RandomIt last);
```
这里的 `RandomIt` 是随机访问迭代器,`first` 和 `last` 分别表示要排序范围的起始和结束迭代器。`sort()` 可以直接作用于 `std::vector`, `std::array`, `std::list`, 等支持随机访问的容器。
例如,如果你有一个整数向量 `v`,你可以这样做来对它进行升序排序:
```cpp
std::vector<int> v = {5, 3, 9, 1, 7};
std::sort(v.begin(), v.end());
```
如果你想自定义排序规则,可以提供一个比较函数作为第三个模板参数,例如按照字符串长度排序:
```cpp
bool compare(const std::string& a, const std::string& b) {
return a.length() < b.length();
}
std::vector<std::string> words;
// ...填充单词到words...
std::sort(words.begin(), words.end(), compare);
```
相关问题
c++中sort函数用法
C语言中的sort函数是用于对数组进行排序的函数。它可以按照升序或降序排列数组的元素。在引用中的范例中,sort函数被用来对字符数组a进行降序排序。在引用中的范例中,sort函数被用来对整数数组a进行降序排序。sort函数的使用方法是排序的数组作为第一个参数,数组的大小作为第二个参数,以及一个比较函数作为第三个参数。比较函数可以是自定义的,用来指定排序的方式,例如升序或降序。sort函数的时间复杂度为n*log2(n),执行效率较高。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [C++中sort函数用法](https://blog.csdn.net/m13526413031/article/details/79050787)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
- *3* [C++sort函数的用法](https://blog.csdn.net/liuzuyi200/article/details/8974326)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
c++的sort函数用法
C++标准库中的`sort`函数是`<algorithm>`头文件提供的,用于对容器中的元素进行排序。它接受两个迭代器作为参数,分别表示待排序范围的开始和结束位置。基本用法如下:
```cpp
#include <algorithm>
#include <vector>
// 对vector类型的整数列表进行升序排序
std::vector<int> nums = {5, 2, 8, 1, 9};
std::sort(nums.begin(), nums.end());
// 如果你想降序排列,可以提供第三个模板参数,这里是true(默认是false)
std::sort(nums.begin(), nums.end(), std::greater<int>());
// 对自定义类型进行排序需要提供比较函数
struct MyStruct {
// 定义比较规则
bool operator<(const MyStruct& other) const {
return my_value > other.my_value;
}
};
std::vector<MyStruct> structs = {...};
std::sort(structs.begin(), structs.end());
```
注意,`sort`函数不会改变原序列,而是返回一个新的已排序的序列。如果你想直接在原容器上进行排序,可以使用`std::stable_sort`。
阅读全文