容器STL
作者:
汉德桑姆
,
2024-03-13 20:55:02
,
所有人可见
,
阅读 30
2024.3.13
——————————容器——————————————
*vector 变长数组
size()
clear()
empty()
front()/back()
push_back()/pop_back()
begin()/end()
[]:支持随机访问
支持比较运算
*queue 队列
size()
empty()
push()/pop():向队尾插入元素/弹出队头元素
front()/back()
*priority_queue 优先队列(大根堆)
push():插入一个元素
pop():弹出堆顶元素
top():返回堆顶元素
定义小根堆的方式:priority_queue(int,vector<int>,greater<int>) a
初始化:priority_queue(int,vector<int>,less<int>) q;
int是存储数据的数据类型,vector<int>是排序的实现方式,less<int>/greater<int>是排序的标准,降序/升序
priority_queue(int)默认用vector<int>实现,less<int>标准
*stack 栈
size()
empty()
push()
pop()
top()
*pair<int,int>
first,second
比大小,字典序
*deque 双端队列
size()
empty()
clear()
front()
back()
push_front()/push_back()
pop_front()/pop_back()
*string 字符串
clear()
empty()
size()
set multiset map multimap 基于二叉树,动态的维护有序数列
size()
empty()
begin()/end()
**set:不能有重复元素 **multiset:可以有重复元素
set/multiset:insert(),find(),count():查找某一个数的个数
erase():
(1)输入一个数:删除所有等于这个数的节点
(2)输入一个迭代器:删除这个迭代器
lower_bound()/upper_bound():
返回大于等于x最小的数的迭代器/返回大于x最小的数的迭代器
**map/multimap 很重要
insert():插入的数是pair
erase():输入的数是pair或迭代器
find()
[] O(log n)
unordered_set,unordered_multiset,unordered_map,unordered_multimap 无序
增删改查的时间复杂度为O(1);
无序,不支持lower_bound()/upper_bound()
*bitset 压位
可以用一个字节的8位都当作bool变量用,节省空间
创建变量 bitset<100> s;//创建100位bool变量
~s 取反
^s 异或
-s 非
&s 与位
|s 或位
>>,<<
count():返回1的个数
any():判断是否至少有一个1/
none():返回是否全为0