标签:开头 连续 内存 先进先出 ++ 访问 begin 小根堆 vector
什么是 STL?
STL(Standard Template Library)是 C++ 标准模板库,里面提供了大量模板。
队列(先进先出)
加载库:include < queue > 申明:queue < type > name
queue中元素在内存中不一定连续。
q.push(x) 向队列 q 末尾加入元素 x o(1)
q.pop() 从对头出队o(1)
q.front() 返回队列 q 开头元素。q.back() 返回队列 q 末尾元素。
q.size() 返回队列 q 元素个数。q.empty() 返回队列 q 是否为空。
应用:SPFA算法,BFS。(需要先来先走的情况,扩展节点)
加载库:include < deque>
双端队列deque是一个支持在两端高效插入或删除元素的连续线性空间。他像vector和queue的结合。与vector相比,deque在头部删除和增加的元素的时间复杂度为O(1);与queue相比,deque像数组一样支持随机访问。
加载库:include < priority_queue > 申明:priority_queue < type > name
一般使用:priority_queue< int,vector<int>,greater<int> > q; //小根堆
( 注意有三个元素要写,vector<int>无意义,但要写;或者只写前面的一个也可以 )
重载小于号:
struct node{ //默认大根堆 int x,y; //先按和排序,再按x排序 bool operator<(const node &v) const { if(x+y!=v.x+v.y) return x+y < v.x+v.y; return x<v.x; } //重载之后变为从小到大排序 }; priority_queue<node> q;
标签:开头 连续 内存 先进先出 ++ 访问 begin 小根堆 vector
原文地址:https://www.cnblogs.com/clarencezzh/p/10727388.html