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
*/
标签:返回,常用,STL,元素,bound,c++,back,pop,push
From: https://www.cnblogs.com/ice-big/p/17641649.html