stack容器

stack基本概念

1、概念: stack是一种先进后出的数据结构,它只有一个出口

栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为

栈中进入数据称为——入栈push

栈中弹出数据称为——出栈pop

stack常用接口

1、功能描述:栈容器常用的对外接口

2、构造函数:

①stack<T> stk; //stack采用模版类实现,stack对象的默认构造形式

②stack(const stack &stk); //拷贝构造函数

3、赋值操作

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

4、数据存取

①push(elem); //向栈顶添加元素

②pop( ); //从栈顶移除第一个元素

③top( ); //返回栈顶元素

5、大小操作

①empty( ); //判断堆栈是否为空

②size( ); //返回栈的大小

#include<stack>
void test01(){
    //特点:符合先进后出数据结构
    stack<int>s;
    //入栈
    s.push(10);
    s.push(20);
    s.push(30);
    s.push(40);
    cout<<"栈的大小"<<s.size()<<endl;
    
    //只要栈不为空,查看栈顶,并且执行出栈操作
    while(!s.empty()){
        //查看栈顶元素
        cout<<"栈顶元素"<<s.top()<<endl;
        //出栈
        s.pop();
    }
    cout<<"栈的大小"<<s.size()<<endl;
}

queque容器

queque基本概念

1、概念:Queque是一种先进先出的数据结构,它有两个出口

队列容器允许从一端新增元素,从另一端移除元素

队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为

队列中进数据称为——入队push

队列中出数据称为——出队pop

queque常用接口

1、功能描述:栈容器常用的对外接口

2、构造函数:

①queue<T> que; //queque采用模版类实现,queque对象的默认构造形式

②queue(const queue &que); //拷贝构造函数

3、赋值操作

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

4、数据存取

①push(elem); //向队尾添加元素

②pop( ); //从队头移除第一个元素

③back( ); //返回最后一个元素

④front( ); //返回第一个元素

5、大小操作

①empty( ); //判断堆栈是否为空

②size( ); //返回栈的大小

#include<queue>

class Person{
punlic:
    Person(string name,int age){
        this->m_Name=name;
        this->m_Age=age;
    }
    string m_Name;
    int m_Age;
};

void test01(){
    //特点:符合先进先出数据结构
    Queue<Person>q;
    //准备数据
    Person p1("唐僧",30);
    Person p1("孙悟空",1000);
    Person p1("猪八戒",900);
    Person p1("沙僧",800);
    //入队
    q.push(p1);
    q.push(p2);
    q.push(p3);
    q.push(p4);
    cout<<"队列的大小"<<q.size()<<endl;
    
    //只要栈不为空,查看栈顶,并且执行出栈操作
    while(!q.empty()){
        //查看队头元素
        cout<<"队头元素——姓名"<<q.front().m_Name<<"年龄:"<<q.front().m_Age<<endl;
        //查看队尾元素
        cout<<"队尾元素——姓名"<<q.back().m_Name<<"年龄:"<<q.back().m_Age<<endl;
        //出队
        q.pop();
    }
    cout<<"队列的大小"<<q.size()<<endl;
}

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐