STL
vector
初始化
vector<int> v; |
获取数组长度
v.size() |
判断数组是否为空
v.empty(); |
清空
v.clear(); |
获取首尾元素
v.front(); |
添加/删除
v.push_back(); |
首尾迭代器
v.begin();v.end(); |
遍历方式
vector<int> v; |
集合比较
vector<int> v1(3,4),v2(4,3); |
Pair
pair<int,string> p
获取第一个关键字
p.first(); |
获取第二个关键字
p.second(); |
支持比较运算,先比较第一个关键字,接着比较第二个关键字
初始化
p = make_pair(10,"sdfdsf"); |
pair也可以实施嵌套效果
pair<int,pair<int,string>> p; |
String
将原来的char数组替换成string
支持字符串和字符拼接
string s; |
返回元素的首地址
cout << s.c_str() << endl; |
清除,判断为空,长度
s.size(); |
Queue
初始化
queue<int> q; |
添加元素
q.push(1); |
弹出元素
q.pop(); |
获取首尾元素
q.front(); |
清空队列
q = queue<int>(); |
Priority_queue(heap)
初始化
priority_queue<int> q; //默认情况下是大顶堆 |
小顶堆
q.push(-x); //添加相反数按照大顶堆排序-> 小顶堆 |
插入
q.push(x); |
弹出
q.pop(); |
返回堆顶元素
q.top(); |
Stack
初始化
stack<int> st; |
获取栈长度
st.size(); |
判断栈是否为空
st.empty(); |
向栈顶添加元素
st.push(x); |
弹出栈顶元素
st.pop(); |
返回栈顶元素
st.top(); |
Deque
初始化
deque<int> dq; |
sec
dq.size(); |
front/back
dq.front(); |
push_back/pop_back
dq.push_back(x);dq.pop_back(x); |
push_front/pop_front()
dq.push_front(x);dq.pop_front(x); |
begin/end
dq.begin();dq.end(); |
Set/multiSet
插入操作
set.insert(x); |
查找一个数
set.find(x); |
判断某一个数出现的个数
set.count(x); |
删除操作
set.erase(x) //默认情况下是将所有x都删,如果传入的是迭代器那么指定删除 |
lower_bound/upper_bound
- lower_bound返回的是大于等于x的最小数的迭代器
- upper_bound返回的是大于x的最小数的迭代器
Map/multiMap
初始化
map<int,int> maps; |
insert
maps.insert(pair<>) |
erase
maps.erase(pair/迭代器) |
find
maps.find() |
数组形式进行键值访问
map<int,string> maps; |
lower_bound/upper_bound
unordered
unordered_set,unordered_map,unordered_multiset,unordered_multimap
和上面一样,增删改查时间复杂度都是O(1)
不支持lower_bound和upper_bound
bitset(压位)
初始化
bitset<100000> s; |
支持的位运算
~ ^ & | >> << == != |
检查1的个数
count(); |
判断是否至少有一个1
any(); |
判断是否全
none(); |
set() //把所有位置变成1 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Freedom Coding!
评论
ValineDisqus