Vector
std:ranges::sort()
-std=c++20
是一个C++20引入的排序函数,收录于#include<algorithm>
()里的内容通常是 vector 和 array(满足随机访问迭代器要求),也可以是其它符合范围 概念 的序列。
使用规则
默认是std::less,即升序排序。
改变排序规则可以通过传入自定义比较函数来实现,比如:
std::range::sort(cnt,std::greater{});
TIPS:
C++17后可以这么写,传统方法写作...sort(cnt,std::greater<Type>{});
和std::sort的区别在哪里?
本函数可以直接接受范围/容器作为参数,不需传begin()
/ end()
迭代器。
传统写法所实现的功能相同,但是需要显式指定迭代器范围
sort使用方法
传入两个迭代器,指定左闭右开的区间,默认升序
自定义排序规则需传第三参数(比较函数)
array,vector
arr [];
sort(arr,arr + n);//[arr,arr + n)vector<int> V;
sort(V.begin(),V.end());//[begin,end)
时空复杂度
两个函数的时空复杂度都是O(nlogn)