(暂未完结)
栈
头文件:<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