STL与贪心
STL
在OI里面最常用的几个容器:
stack,queue,deque,priority_queue,vector,set,map
stack, queue, deque
●分别是栈、队列、双端队列。
●双端队列的入队和出队操作在两端都可进行。
●据说双端队列常数不小,建议少用。
priority_queue
●优先队列,也就是堆。
●默认是大根堆。
vector
●几乎是stl里面用的最多的容器了。
●相当于是个动态数组,每次可以往末端插入一个元素,下标从0开始。
v.clear()和vector<>().swap(v)的区别。
●前者是假装清空了,实际内存没有被回收。
●后者是真的回收了,不过需要和v.size()的大小成正比的时间。

set/map
●分别是集合/映射。
●内部使用红黑树实现。
●同样的当set<>和map<,>中
●的第一个参数是自定义类型的时候
●需要重新定于小于号。
●复杂度基本上是O(log(当前大小))。

还有multiset和multimap
●是可重集合和可重映射。
●有两个注意的:第一个是count函数复杂度变成了O(log+答案)的,也就是如果有很多相同元素,那么count函数代价很大。
●第二个是删除x的话,使用s.erase(x)会把所有权值为x的删除。
●如果只想删掉一个需要s.erase(s.find(x))。
迭代器
●只介绍set/map的迭代器。

贪心
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】