现在的位置: 首页 > 综合 > 正文

STL中的queue和stack

2014年02月12日 ⁄ 综合 ⁄ 共 610字 ⁄ 字号 评论关闭

    做ACM时, 时常用到这两个数据结构, 特别是处理树, 图等操作时, 似乎已经必不可缺了.

    若自我构造, 则耗时巨多, 且效率堪忧. 故灵活运用, 即可如鱼得水, 信手拈来.

    特记之

#include<stack>

#include<queue>

std:queue

std:stack

using namespace std;

queue:

线性表, 尾进头出

queue <int> qu;

qu.push(val);

qu.pop();

qu.back();

qu.front(); //队首

qu.empty();

qu.size();


优先队列, 也包含在#include<queue>中

priority_queue<int> pqu;

方法和queue一样, 只是最大的元素位于队首

如果优先队列的元素类型是结构体,可以通过在结构体中重载“<“操作符的方法来修改优先队列的优先性。 

struct info {  

string name;

float score;  

bool operator < (const info &a) const  {   //按照score由小到大进行排列,如果要使用由大到小,使用“>”即可   return a.score<score;  }

 }

此进直接把结构体入队,则会按score的递减顺序排

stack<int>st;

stack<int>st1;

st.push(a);

st.pop();

st.top();

st.empty();

st.size();

st.swap(st1);


抱歉!评论已关闭.