c++ 常用的 STL
c++ 中常用的 STL
vector
//vector 变长数组 倍增的思想(倍增:系统为每一个程序分配空间的时候,所需要的时间和空间大小无关,与请求次数相关)尽量减少请求的次数 /* 返回元素的个数 size() 判断是否为空 empty() 清空 clear() front() 返回第一个数 back() 返回最后一个数 push_back()/pop_back() begin() / end() 支持比较运算 */
pair<类型, 类型>
/* pair<int ,int> 可以存储一个二元值,前后两个值 的类型可以使任意的 first 是第一个元素 second 是第二个元素 支持比较运算,以first为第一关键字, second为第二关键字 */
string
/* string 字符串 substr(m, n) 下标从 m 开始 长度为 n 的子串 s_str() size() empty() clear() */
queue priority_queue
/* queue 队列 push() 向队尾插入一个元素 pop() 弹出队头元素 front() 返回队头元素 back() 返回队尾元素 priority_queue 优先队列 push() 插入一个元素 top() 返回堆顶元素 pop() 弹出堆顶元素 */
stack
/* stack 栈 size() push() 向栈顶插入一个元素 top() 返回栈顶元素 pop() 弹出栈顶元素 */
deque
/* deque 双端队列 队头队尾都可以插入删除 size() clear() front() back() push_back()/pop_back() push_front()/pop_front() begin() / end() */
set map multiset multimap
/* 公有地 size() empty() begin()/end() -- ++ 前驱后继 set/multiset find() 查找一个数 insert() 插入一个数 count() 返回某一个数的个数 erase() 1. 输入一个数x 删除所有的 x 时间复杂度 O(k+logn) 2. 输入一个迭代器 , 删除这个迭代器 lower_bound()/upper_bound() lower_bound() 返回大于等于x的最小的迭代器 upper_bound() 返回大于x最小的迭代器 map multimap insert() 插入的数是一个pair erase() 输入的参数时pair 或者迭代器都可以 find() [] 可以通过下标取到 时间复杂度 O(logn) lower_bound/upper_bound unordered_set unordered_map unordered_mulyiset unordered_multimap 哈希表实现,和上面类似, 增删改查的时间复杂度 O(1) 不支持 lower_bound() / upper_bound() */
bitset
/* bitset 压位 bitset<10000> s; ~ & | ^ == != [] count() 返回多少个1 any() 判断是否至少一个1 none() 判断是否为 0 set() 把所有位置置成1 set(k,v) 把第k位改成v reset() 把所有位置变成0 */
本文作者:TomLove
本文链接:https://www.cnblogs.com/tomlove/p/17641649.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步