头文件:
#include<vector>
定义:
函数名 | 含义 |
---|---|
vector < int > q(n) | 定义长度为n的数组 |
vector < double > q | / |
vector<结构体名>q; | / |
vector < int > b(a) | 将a数组拷贝给b数组,前提是a和b都是相同类型的 |
vector < int > q[5] | 定义一个行数为5的二维数组 |
vector < vector < int > >q | 定义一个行数列数可变化的二维数组 |
q.front() | 弹出数组的第一个数据 |
q.push_back() | 在最后加上一个数 O(1) |
q.pop_back() | 弹出最后一个数 O(1) |
q.size() | 返回数组大小 O(1) |
q.clear() | 清楚元素个数 O(N) |
q.resize(x,y) | 改变数组大小为n,n个空间数值赋为v,如果没有默认赋值为0 |
q.insert(x,y) | 在x的位置插入元素y.O(N) |
q.erase(x,y) | 清除[x,y)的元素 |
q.begin() | 返回第一个元素的地址 |
q.end() | 返回最后一个元素的后一个位置的地址 |
q.empty() | 判断数组是否为空,若为空则返回true,否则返回false |
用
v
e
c
t
o
r
vector
vector 有时可以解决部分平衡树的问题,但由于复杂度有时很劣,还是手打吧
q.insert(lowerbound(q.begin(),q.end(),x),x)
在第一个大于等于自己的数的位置上插入,复杂度为
O
(
n
l
o
g
n
)
O(n \ logn)
O(n logn)
注 :
u
p
p
e
r
_
b
o
u
n
d
upper\_ bound
upper_bound 为查找大于自己的数