基础算法学习---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-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解
- 2024-12-20利用Gemini构建处理各种PDF文档的Document AI管道