STL

详见此处   和这里

 lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)

lower_bound(*first, last, key):返回一个非递减序列ch[n]中第一个大于或等于key的迭代器指针。

如果map中存储的为整型,且升序排列,如1,2,3,4, 使用lower_bound(ch, ch+n, 2)的话,返回的结果会是2。

upper_bound(*first, last, key):返回一个非递减序列[first, last)中第一个大于key的迭代器指针。

如果map中存储的为整型,且升序排列,如1,2,3,4, 使用upper_bound(ch, ch+n, 2)的话,返回的结果会是3。

vector<int>a[maxn]或者vector<double>b[maxn]是一个不定长数组像一个二维数组,

只是第一维的大小是固定的(不超过maxn),,可以用clear( )清空,resize( )改变大小,

用push_back( )和pop_back( )在尾部添加和删除元素,

a.size( )读取它的大小,a.resize( )改变大小,a.push_back( )向
尾部添加元素,a.pop_back( )删除最后一个元素。

set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置

(现在我的理解就是按ascii码从小到大排列)。set<string>  a, set<int> s。

元素插入:insert()。   返回set容器的第一个元素:begin() 。       返回set容器的最后一个元素:end() 。

 返回set容器可能包含的元素最大个数:max_size() 。

find()方法对集合进行检索,如果找到查找的的键值,则返回该键值的迭代器位置;否则,返回集合最后一个元素后面的一个位置,即end()。

set_intersection 求两个容器的交, set_union 求两个容器的并 set_difference求两个容器的差

map映射:

count(n),返回的是被查找元素n的个数。如果有,返回1;否则,返回0。注意,map中不存在相同元素,所以返回值只能是1或0。

find(n),返回的是被查找元素n的位置,没有则返回map.end()。

remove(n),移除n以及其映射。

empty(),返回true则说明是空map。

clear(),清空。

 map的基本操作函数:
C++Maps 是一种关联式容器,包含“关键字/值”对
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
equal_range() 返回特殊条目的迭代器对
erase() 删除一个元素
find() 查找一个元素
get_allocator() 返回map的配置器
insert() 插入元素
key_comp() 返回比较元素key的函数
lower_bound() 返回键值>=给定元素的第一个位置
max_size() 返回可以容纳的最大元素个数
rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器
size() 返回map中元素的个数
swap() 交换两个map
upper_bound() 返回键值>给定元素的第一个位置
value_comp() 返回比较元素value的函数





优先队列
priority_queue<int,vector<int>,cmp>pq
原文地址:https://www.cnblogs.com/tony-/p/6486206.html