stack容器

stack基本概念

stack是一种先进后出(First In LastOut,FILO)的数据结构,它只有一个出口
栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为
可以类比弹匣,羽毛球筒等,先进后出,因为先放进去会压在最下面,它想出来就需要上面的出来才行。

stack构造函数

  • stack stk;//stack采用模板类实现,stack对象的默认构造形式
  • stack(const stack &stk);//拷贝构造函数

赋值操作

  • stack& operator=(const stack &stk);//重载等号操作符

数据存取

  • push(elem);//向栈顶添加元素
  • pop();//从栈顶移除第一个元素
  • top();//返回栈顶元素

大小操作

  • empty();//判断堆栈是否为空
  • size();//返回栈的大小
#include<iostream>
using namespace std;
#include<stack>
void test()
{
    stack<int> stk;
    stk.push(10);
    stk.push(20);
    stk.push(30);
    stk.push(40);
    cout << "栈的大小:" << stk.size() << endl;
    //只要栈不为空,查看栈顶,并执行出栈操作
    while (!stk.empty())
    {
        cout << stk.top() << " ";
        stk.pop();
    }
    cout << endl;
    cout << "栈的大小:" << stk.size() << endl;
}
int main()
{
    test();
}

栈的结构还是非常简单的,只需要记住它是先进后出的结构即可。

queue容器

queue基本概念

Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口。
可以类比生活中的排队场景,排在前面的人先办理好业务离开。先进先出规则。

queue构造函数

  • queue que;//queue采用模板类实现,queue对象的默认构造形式
  • queue(const queue &que);//拷贝构造函数

queue赋值操作

  • queue& operator=(const queue &que);//重载等号操作符

queue数据存取

  • push(elem);//往队尾添加元素
  • pop();//从队头移除第一个元素
  • bacK();//返回最后一个元素
  • front();数据存取//返回第一个元素

queue大小操作

  • empty();//判断堆栈是否为空
  • size();//返回栈的大小
#include<iostream>
using namespace std;
#include<queue>
void test()
{
    queue<int>q;
    q.push(10);
    q.push(20);
    q.push(30);
    q.push(40);
    cout << "q的大小" << q.size() << endl;
    while (!q.empty())
    {
        cout << "队头:" << q.front() << " ";
        cout << "队尾:" << q.back() << " ";
        cout << endl;
        q.pop();
    }
    cout << "q的大小" << q.size() << endl;
}
int main()
{
    test();
}