vector
- 可以用下标[]直接访问
- 初始化大小后为非动态数组
1 | 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 | stack<int> st; |
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 | priority_queue<int> pq; //默认大根堆 |
自定义排序将greater<int>换成cmp即可
对pair类型先对first排序,再对second排序