网站网站建设企业,宁波网页开发哪家好,把别人的图片拿来做网站,医疗知识普及网站开发目录 一、stack1.1 stack的使用1.2 stack的模拟实现 二、queue2.1 queue的使用2.2 queue的模拟实现 一、stack
1.1 stack的使用
stack是一种容器适配器#xff0c;它的特点是后进先出#xff0c;只能在容器的一端进行插入和删除操作。 stack的使用很简单#xff0c;主要有… 目录 一、stack1.1 stack的使用1.2 stack的模拟实现 二、queue2.1 queue的使用2.2 queue的模拟实现 一、stack
1.1 stack的使用
stack是一种容器适配器它的特点是后进先出只能在容器的一端进行插入和删除操作。 stack的使用很简单主要有以下几点
stack()——构造空的栈empty()——检测stack是否为空size()——返回stack中元素的个数top()——返回栈顶元素push()——入栈pop()——出栈
stackint st;
st.push(1);
st.push(2);
st.push(3);
st.push(4);
cout st.size() endl;
while (!st.empty())
{cout st.top() ;st.pop();
}
cout endl;1.2 stack的模拟实现
stack作为容器适配器它的底层可以复用其他的容器例如vector、list、deque默认的情况下使用的是dequedeque兼具vector和list在实现上的功能只是有些在效率上会有所差异。 templateclass T, class Container dequeT//默认是dequeclass stack{public://构造stack(){}//入栈void push(const T x){_con.push_back(x);//调用deque的push_back()}//出栈void pop(){_con.pop_back();//调用deque的pop_back()}//判空bool empty(){return _con.empty();//调用deque的empty()}//返回元素个数size_t size(){return _con.size();//调用deque的size()}//获取栈顶元素T top(){return _con.back();//调用deque的back()}private:Container _con;};二、queue
2.1 queue的使用
queue也是一种容器适配器特点是先进先出在一端插入元素另一端删除或者获取元素。 queue的使用主要有以下几点
queue()——构造空的队列empty()——检测队列是否为空size()——返回队列中有效元素的个数front()——返回队头元素back()——返回队尾元素push()——入队列pop()——出队列
queueint q;
q.push(1);
q.push(2);
q.push(3);
q.push(4);
q.push(5);
cout q.size() endl;
while (!q.empty())
{cout q.front() ;q.pop();
}
cout endl;2.2 queue的模拟实现
queue的模拟实现与stack同理
templateclass T, class Container dequeT
class queue
{
public://构造queue(){}//判空bool empty(){return _con.empty();//调用deque的empty()}//返回元素个数size_t size(){return _con.size();//调用deque的size()}//返回队头元素T front(){return _con.front();//调用deque的front()}//返回队尾元素T back(){return _con.back();//调用deque的back()}//入队列void push(const T x){_con.push_back(x);//调用deque的push_back()}//出队列void pop(){_con.pop_front();//调用deque的pop_front()}
private:Container _con;
};