stl容器
vector
动态分配内存
1 | vector<int>v1(3); |
array
固定长度的数组数据结构
1 | array<int,3> v0; |
deque
双端队列
1 | deque<int>v0; |
set
本身时排好序的
1 | set<int>s; |
set
在默认情况下的比较函数为 <
。然而在某些特殊情况下,我们希望能自定义 set
内部的比较方式。
1 | struct cmp{ |
multiset
可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数是有序的,而且序列中可以存在重复的数。
priority_queue
1 | priority_queue<int>que;//从大到小 |
函数
binary_search
二分查找
找到返回1,找不到返回0
1 | binary_search(数组名+n1,数组名+n2,值); |
lower_bound
在一个有序序列中进行二分查找,返回指向第一个 大于等于
的元素的位置的迭代器。如果不存在这样的元素,则返回尾迭代器
1 | lower_bound(v.begin(),v.end(),x); |
upper_bound
在一个有序序列中进行二分查找,返回指向第一个 大于
的元素的位置的迭代器。如果不存在这样的元素,则返回尾迭代器
1 | upper_bound(v.begin(),v.end(),x); |
next_permutation
将当前排列更改为 全排列中的下一个排列。如果当前排列已经是 全排列中的最后一个排列(元素完全从大到小排列),函数返回
false
并将排列更改为 全排列中的第一个排列(元素完全从小到大排列);否则,函数返回true
1 | do{ |
string
1 | string s; |