先写这么多,以后有时间再更~
bitset
用法:#include<bitset>
定义:`bitset <大小> b;
功能:
函数 | 功能 |
---|---|
b.any() | 是否存在1 |
b.reset() | 全部置为0 |
b.set() | 全部置为1 |
b.count() | 1的个数 |
priority_queue
用法:#include<queue>
定义:priority_queue<int> q;
(队头最大)
priority_queue<int,vector<int>,greater<int> > q;
(队头最小)
也可以对struct使用,重载struct的<即可。
方法:
struct xx
{
bool operator < (xx y) const
{
...
}
}
功能:
函数 | 功能 |
---|---|
q.top() | 队头 |
q.pop() | 弹出队头 |
q.push() | 加入队列 |
q.empty() | 是否为空 |
map
用法:#include<map>
定义:map<int,int> m;
函数 | 功能 |
---|---|
a=m[b] | 修改/访问 |
m.find(s) | 是否有s这个下标 |
m.lower_bound(s) | 返回大于等于s的第一个键值的迭代器 |
m.find(s) | 返回等于s的第一个键值的迭代器 |
特性:
map<,> :: iterator k;
pair<,> kk=*k;
vector
用法:#include<vector>
定义:vector<int> m;
大概是一个不定长数组。
函数 | 功能 |
---|---|
a=m[b] | 修改/访问 |
m.resize() | 定义大小 |
m.clear() | 清空vector |
m.empty() | 是否为空 |
algorithm库
用法:#include<algorithm>
函数 | 功能 |
---|---|
sort(a+1,a+size(a)+1,cmp) | 排序 |
lower_bound(a+1,a+size(a)+1,b)-a | 返回有序数组a中第一个大于等于b的数的位置 |
upper_bound(a+1,a+size(a)+1,b)-a | 返回有序数组a中第一个大于b的数的位置 |
unique(a+1,a+size(a)+1) | 去重(详见度娘) |
deque
用法:#include<deque>
定义:deque<int> q;
函数 | 功能 |
---|---|
q.front() | 访问队头 |
q.back() | 访问队尾 |
q.pop_front() | 弹出队头 |
q.pop_back() | 弹出队尾 |
q.push_front() | 队头加进一个元素 |
q.push_back() | 队尾加进一个元素 |
q.empty() | 是否为空 |
set
用法:#include<set>
定义:set<int> s;
迭代器:set<int> :: iterator it;
迭代器->元素:*it;
函数 | 功能 |
---|---|
s.count() | 返回是否存在该元素 |
s.empty() | 是否为空 |
s.insert() | 加入一个元素 |
s.erase() | 删除一个元素,参数为迭代器 |
s.size() | 元素个数 |
s.find() | 找到一个元素对应的迭代器,若不存在返回s.end() |
s.lower/upper_bound(x) | 返回第一个大于(等于)x的迭代器 |