本文主要是介绍基础算法学习---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库们的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!