基础算法学习---c++的stl库们
2021/7/18 11:36:15
本文主要是介绍基础算法学习---c++的stl库们,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
vector 变长数组
size() 返回元素个数 empty() 检查是否为空 clear() 清空 front()/back() 返回头尾元素 begin()/end() 迭代器 pair<a,b> 一个有a类型元素和b类型元素的结构体 first 访问第一个元素 second 访问第二个元素 string 字符串 size()/length() substr(a,b) 从a开始,长度为b c_str() 返回首地址 clear() 清空 queue 队列 size() 返回大小 empty() 检查是否空 push() 对尾插入 pop() 对头弹出 front()/back() 查看
priority_queue 优先队列
priority_queue<int> heap; 默认为大根堆 priority_queue<int,vector<int>,greater<int>> heap; 小根堆,或者直接插入负数 push() 插入 top() 返回堆顶 pop() 弹出堆顶
stack 栈
size() 大小 empty() 是否空 push() 尾部插入 pop() 尾部弹出 top() 返回尾部
deque 双端队列,缺点是很慢
size() empty() clear() front()/back() push_back()/pop_back() push_front/pop_front() begin()/end() []
set,multiset,map,multimap
size() empty() clear() begin()/end() set/multiset set没有重复元素,multiset有 insert() 插入一个数 find() 返回目标地址,如果不存在则返回end() count() 返回一个数的个数 erase() (1) 输入一个数x,删除所有x (2) 输入一个迭代器,删除这个迭代器 lower_bound()/upper_bound() lower_bound(x) 返回大于等于x的最小数 upper_bound(x) 返回大于x的最小数 map/multimap map没有重复元素,multiamp有 insert() erase() find() lower_bound()/upper_bound() lower_bound(x) 返回大于等于x的最小数 upper_bound(x) 返回大于x的最小数
unordered_set,unodered_multiset,unodered_map,unodered_multimap 哈希表
和上面类似,时间复杂度为O(1),无序 不支持lower_bound()/upper_bound(),迭代器++
bitset 压位
bitset<a> a为数量 支持位运算 [] count() 返回有多少个1 any() 判断是否至少有一个1 none() 判断是否全为0 set() 变所有位置为1 set(k,v) 将第k变成v reset() 把所有位变成0 flip() 取反 flip(k) 第k位取反
这篇关于基础算法学习---c++的stl库们的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15在使用平台私钥进行解密时提示 "私钥解密失败" 错误信息是什么原因?-icode9专业技术文章分享
- 2024-11-15Layui框架有哪些方式引入?-icode9专业技术文章分享
- 2024-11-15Layui框架中有哪些减少对全局环境的污染方法?-icode9专业技术文章分享
- 2024-11-15laydate怎么关闭自动的日期格式校验功能?-icode9专业技术文章分享
- 2024-11-15laydate怎么取消初始日期校验?-icode9专业技术文章分享
- 2024-11-15SendGrid 的邮件发送时,怎么设置回复邮箱?-icode9专业技术文章分享
- 2024-11-15使用 SendGrid API 发送邮件后获取到唯一的请求 ID?-icode9专业技术文章分享
- 2024-11-15mailgun 发送邮件 tags标签最多有多少个?-icode9专业技术文章分享
- 2024-11-15mailgun 发送邮件 怎么批量发送给多个人?-icode9专业技术文章分享
- 2024-11-15如何搭建web开发环境并实现 web项目在浏览器中访问?-icode9专业技术文章分享