std中稳定排序算法_STL中的排序算法sort详解【Van0512】

本文介绍了C++标准库std中的排序算法sort和stable_sort。sort用于升序排序,可接受自定义比较器,但不是稳定排序。stable_sort则提供稳定排序,保持相等元素的相对顺序。示例代码展示了如何使用这两个函数,并指出sort通过rbegin()和rend()可以实现降序排序,但效率不如直接使用reverse。
摘要由CSDN通过智能技术生成

要使用sort排序,首先得包含algorithm的头文件,即在文件开头写下这么一行:

#include

同时,为了书写方便,同时也写下

using namespace std;

sort排序有两种参数模式,返回值都是void

一种是sort(first, last)

一种是sort(first, last, comp)

first和last表示的是一个迭代器对象,可以理解成指针,comp是一种自定义的比较器,可以自己定义比较规则。比较的范围是一个开区间[first, last)。

写个demo:

#include

#include

#include

using namespace std;

/*

缺省比较器的默认比较规则是升序排序,这里用两种方法构造两个和默认比较规则一致的比较器。

若要实现降序排序,把 '' 就可以了。

*/

bool comp(int i, int j) {

return i < j;

}

struct {

bool operator()(int i, int j) {

return i < j;

}

} comp2;

int main(void) {

vector vec = {3, 2, 4, 1, 7, 6, 5, 8 };

//1. 实现前四个元素的升序排序

sort(vec.begin(), vec.b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值