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.配套例题
点个赞呗
本文来自博客园,作者:LG532626,转载请注明原文链接:https://www.cnblogs.com/atronomia/p/use-algorithm.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合终身会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 垃圾qt,毁我青春
· DeepSeek为什么现在感觉不火了?
· 开发十年现状之我的工作经历
· .NET 9中的异常处理性能提升分析:为什么过去慢,未来快
· 一个老程序员, 两个小时能用corsur做出什么样的东西