栈 队列 优先队列 STL

#include<stack>  //头文件

stack<char> st;  //定义

st.push(str1[0]);  //入栈
cur=st.top ();    //取栈顶值
st.pop();      //出栈
st.empty ()//空为true
 
 
队列
#include<queue>
queue<char>que;
que.push(a);
a=que.front();
que.pop();
que.empty ()

优先队列
bool operator < (const coor &a, const coor &b)
{
    return a.time > b.time; //从小到大排序,修改为最小堆,取最小值。
}priority_queue<coor>que;
que.push(a);
a=que.top();//  默认为最大堆,取最大值。
que.pop();
que.empty ()

以下对vector、list、deque容器通用,这里以list容器为例,注意访问元素时vector、deque可用下标直接访问,但对list不行
list<line> dlist;
vector<int> c;
line in;
list<line>::iterator iter;//定义一个指向元素的迭代器
插入:
dlist.insert(iter,t)//在iter所指元素之前插入值为t的元素
dlist.insert(iter,n,t)//在iter所指元素之前插入n个值为t的元素
dlist.push_back(in);//在尾端插入
dlist.push_front(in);//在头端插入
访问:
dlist.back();//最后一个元素
dlist.front();//第一个元素
for(iter=dlist.begin();iter!=dlist.end();iter++)//访问元素
{
}
c[iter] //list不提供该操作
 
删除:
iter=dlist.erase(iter);//删除元素 返回指向删除元素的下一个元素
iter=dlist.erase(iter1,iter2);//删除iter1,iter2之间的所有元素,返回指向删除段的下一个元素
c.pop_back();//删除最后一个元素
c.pop_front();//删除第一个元素,只适用于 list 或 deque 容器
dlist.clear();//清空容器
posted @ 2011-03-27 21:04  CoderZhuang  阅读(256)  评论(0编辑  收藏  举报