Functions

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)

posted @ 2025-09-28 15:47  EcSilvia  阅读(7)  评论(0)    收藏  举报