algorithm库的使用

1. 什么是algorithm?

algorithm库装满了好用的库函数,一般由#include <algorithm>包含。可是本蒻蒻还是喜欢万能头(逃

2. 经典的库函数

(1) sort()函数

sort(begin, end, cmp);

这个函数有一些技术含量,但它只需要传入两个指针或随机迭代器(begin 和 end)和cmp比较方式,默认可以不填,即从小到大排序,可是当你需要从大到小排序或需要按照一定规则排序结构体时,你便需要这个cmp了。

比如这是一个cmp函数的例子:

bool cmp(student a, student b) {
	return a.score > b.score;
}

记住,在传参时,只要传入cmp即可。

(2) reverse()函数

reverse(begin, end);

这个函数相对于上一个要简单多了,只要传入两个指针或随机迭代器(begin 和 end)就可以了,它可以实现对容器的翻转。

(3) next_permutation() 和 prev_permutation()

next_permutation(begin, end, cmp);
prev_permutation(begin, end, cmp);

这是一对全排列函数,需要传入两个指针或随机迭代器(begin 和 end),next_permutation 返回 bool类型,即有没有下一个全排列,如果有,则将容器换到下一个全排列。同样,prev_permutation 返回的是有没有上一个全排列,用法也是一样的。但是这里的cmp其实没有太大作用,因为如果想用反向全排列,只要用另一个permutation函数就行了。

(4) upper_bound() 和 lower_bound()

upper_bound(begin, end, x);
lower_bound(begin, end, x);

这一对函数便是熟悉的二分查找。upper_bound 找右边界,另一个找左边界。这个函数的返回值是一个指针,即对应元素的位置。

3.配套例题

P1088

P1177

P5250

B2122

点个赞呗

posted @   LG532626  阅读(78)  评论(0)    收藏  举报
相关博文:
阅读排行:
· 垃圾qt,毁我青春
· DeepSeek为什么现在感觉不火了?
· 开发十年现状之我的工作经历
· .NET 9中的异常处理性能提升分析:为什么过去慢,未来快
· 一个老程序员, 两个小时能用corsur做出什么样的东西
点击右上角即可分享
微信分享提示