STL 总结

STL使用总结

快排

sort(a+1,a+n+1,less())从小到大 可以省略第三个
sort(a+1,a+n+1,greater())从大到小

堆(queue)

1

分为大根堆priority_queue <int,vector<int>,less<int> > q;(第三个可以省略)
以及小根堆priority_queue <int,vector<int>,greater<int> > q;(第三个不可省略)

2

可以通过对顶堆来实现动态中位数,实现如下

点击查看代码
这里将中位数放在了小跟堆的堆顶来维护,当然也可以放在大根堆的堆顶

set(multiset)

特点

set不可重(可用来去重) multiset可重 但都具有有序性

成员函数

begin() :第一个元素的位置
end() : 最后一个元素的位置 +1
insert() : 插入
erase() : 删除 ,注意传参既可以是值也可以是迭代器
find() :查找某个元素的位置,无则返回 end()
lower_bound() :第一个 某个值的元素所在位置
empty() size() :不多赘述
prev(iterator):返回某个迭代器的上一个迭代器

遍历

for(set<int>iterator it=s.begin();it!=s.end();it++)
for(auto it=s.begin();it!=s.end();it++)
for(auto i:s) 这个是直接访问每一个元素,字符串中同样可以使用

结构体

用结构体重载运算符时要加一个 friend 声明
[NOIP2012 提高组] 开车旅行:

点击查看代码
struct Drive
{
int num,h;
friend bool operator<(Drive a,Drive b){return a.h<b.h;}
};
posted @   Hanggoash  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
动态线条
动态线条end
点击右上角即可分享
微信分享提示