noip中STL总结

先写这么多,以后有时间再更~

bitset

用法:#include
定义:`bitset <大小> b;
功能:

函数 功能
b.any() 是否存在1
b.reset() 全部置为0
b.set() 全部置为1
b.count() 1的个数

##priority_queue
用法:#include
定义:priority_queue q;(队头最大)
priority_queue,greater > q; (队头最小)
也可以对struct使用,重载struct的<即可。
方法:

struct xx
{
	bool operator < (xx y) const
	{
		...
	}
}

功能:

函数 功能
q.top() 队头
q.pop() 弹出队头
q.push() 加入队列
q.empty() 是否为空

map

用法:#include
定义:map 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 m;
大概是一个不定长数组。

函数 功能
a=m[b] 修改/访问
m.resize() 定义大小
m.clear() 清空vector
m.empty() 是否为空

algorithm库

用法:#include

函数 功能
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 q;

函数 功能
q.front() 访问队头
q.back() 访问队尾
q.pop_front() 弹出队头
q.pop_back() 弹出队尾
q.push_front() 队头加进一个元素
q.push_back() 队尾加进一个元素
q.empty() 是否为空

set

用法:#include
定义:set s;
迭代器:set :: iterator it;
迭代器->元素:*it;

函数 功能
s.count() 返回是否存在该元素
s.empty() 是否为空
s.insert() 加入一个元素
s.erase() 删除一个元素,参数为迭代器
s.size() 元素个数
s.find() 找到一个元素对应的迭代器,若不存在返回s.end()
s.lower/upper_bound(x) 返回第一个大于(等于)x的迭代器

你可能感兴趣的:(总结)