(暂未完结)
栈
头文件:<stack>
| 描述 | 语句 | 复杂度 |
|---|---|---|
| 向栈顶插入元素 | <name>.push() | \(O(1)\) |
| 删除栈顶元素 | <name>.pop() | \(O(1)\) |
| 访问栈顶元素 | <name>.top() | \(O(1)\) |
| 返回容纳的元素数 | <name>.size() | \(O(1)\) |
| 检查是否为空 | <name>.empty() | \(O(1)\) |
队列。
头文件:queue
| 描述 | 语句 | 复杂度 |
|---|---|---|
| 向队列尾部插入元素 | <name>.push() | \(O(1)\) |
| 删除首个元素 | <name>.pop() | \(O(1)\) |
| 访问第一个元素 | <name>.front() | \(O(1)\) |
| 访问最后一个元素 | <name>.back() | \(O(1)\) |
| 返回容纳的元素数 | <name>.size() | \(O(1)\) |
| 检查是否为空 | <name>.empty() | \(O(1)\) |
优先队列。
头文件:queue
| 描述 | 语句 | 复杂度 |
|---|---|---|
| 插入元素,并排序 | <name>.push() | \(O(logn)\) |
| 删除首个元素 | <name>.pop() | \(O(logn)\) |
| 访问第一个元素 | <name>.top() | \(O(1)\) |
| 访问最后一个元素 | <name>.back() | \(O(1)\) |
| 检查是否为空 | <name>.empty() | \(O(1)\) |
定义: priority_queue<Type, Container, Functional>name;
如: priority_queue<int>q;//默认为大根堆
priority_queue<int,vector<int>,less<int> >q;//大根堆
priority_queue<int,vector<int>,greater<int> >q;//小根堆
若对于自定义数据类型(如struct),需要重载运算符。格式如下:
inline bool operator <Operators> (const <Type>& a, const <Type>& b){
return <>;
}
如:
inline bool operator < (const struct& a,const struct& b){
return a.a < b.a;
}
大根堆需定义<,小根堆需定义>。
一个动态大小数组。
原文:https://www.cnblogs.com/Shinomiya/p/14342559.html