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