栈 队列 优先队列 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();//清空容器