【数据结构】【C++STL】栈和FIFO队列

来源:互联网 发布:手机淘宝铃声 编辑:程序博客网 时间:2024/05/21 10:26

其实我就是水一发博客
STL中自带的栈和队列 库分别是stack和queue 支持的最主要的三个操作就是push pop 和top(front)
push是在栈或者队列的顶端放入一组数据
pop在栈中是取出顶端的一组数据 而在队列中是取出最底端的元素
top是访问栈中最顶端的数据
front是访问队列中最底端的数据

水一下代码

//stackstack<ll> s;int main(){        s.push(1);        s.push(2);        printf("%d\n" , s.top());        s.pop();        printf("%d\n" , s.top());}  

在这个代码中 第一个输出的数是2 因为它最后入栈 但是随后pop掉了一个数 再输出栈顶元素的时候就变成了 1
如果我们在之后再加两句

        s.pop();        printf("%d\n" , s.top());

我们发现程序报错了 pop掉了1 按说栈里面应该什么也没有了

再水另一个代码

//queuequeue<ll> q;int main(){        q.push(1);        q.push(2);        printf("%d\n" , q.front());        q.pop();        printf("%d\n" , q.front());}

我们发现第一个输出的数是1 因为1是最先入队的 然后当pop掉第一个数的时候 我们发现再输出的数就是2了 因为1最先入队 也就最先出队了
我们再加两句话

        q.pop();        printf("%d\n" , q.front());

这个时候pop掉了2 但是程序却返回了0

差不多就水这些