抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Hello World

人よ、幸福に生きろ!

vector

  • 可以用下标[]直接访问
  • 初始化大小后为非动态数组
1
2
vector<int> v(n, 1);// v[0] 到 v[n - 1]所有的元素初始值均为1 
//注意:指定数组长度之后(指定长度后的数组就相当于正常的数组了)

方法函数

方法 时间复杂度
v.front() O(1)
v.back() O(1)
v.pop_back() O(1)
v.push_back(ele) O(1)
v.size() O(1)
v.empty() O(1)
v.clear() O(N)

排序:sort(v.begin(),v.end())

stack

方法函数

方法 时间复杂度
s.top() O(1)
s.pop() O(1)
s.push(ele) O(1)
s.empty() O(1)
s.size() O(1)
  • 栈遍历
1
2
3
4
5
6
stack<int> st;
for (int i = 0; i < 10; ++i) st.push(i);
while (!st.empty()) {
int tp = st.top(); // 栈顶元素
st.pop();
}

queue

方法函数

方法 时间复杂度
q.front() O(1)
q.back() O(1)
q.pop() O(1)
q.push(ele) O(1)
v.size() O(1)
v.empty() O(1)

deque

没用

priority_queue

没有empty()

方法函数

方法 时间复杂度
pq.top() O(1)
pq.push(ele) O(logN)
pq.pop() O(logN)
v.size() O(1)
v.empty() O(1)
1
2
priority_queue<int> pq; //默认大根堆
priority_queue<int, vector<int>, greater<int> > pq; //小根堆

自定义排序将greater<int>换成cmp即可

对pair类型先对first排序,再对second排序

评论