c++极简总结—STL stack,queue

    科技2026-02-01  5

    1、STL stack

    stack就是“栈” 是容器适配器的一种。栈是一种先进后出的元素序列,访问和删除都只能对栈顶的元素(即最后一个被加入栈的元素)进行,并且元素也只能被添加到栈顶。栈内的元素不能访问。如果一定要访问栈内的元素,只能将其上方的元素全部从栈中删除,使之变成栈顶元素才可以。

    1.1 构造函数

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

    1.2 赋值操作

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

    1.3 数据存取:

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

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

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

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

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

    测试

    void test_1() { stack<int> s; s.push(10); s.push(11); while(!s.empty()) { cout<<"栈的大小为:"<<s.size()<<endl; cout<<"栈顶元素为:"<<s.top()<<endl; s.pop(); } cout<<"栈的大小为:"<<s.size()<<endl; }

    2、STL queue

    queue 就是“队列”。队列是先进先出的,和排队类似。队头的访问和删除操作只能在队头进行,添加操作只能在队尾进行。不能访问队列中间的元素。队列中只有队头和队尾才可以被外界使用,因此队列不允许有遍历行为 queue 可以用 list 和 deque 实现,默认情况下用 deque 实现。

    2.1 构造函数

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

    2.2 赋值操作

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

    2.3 数据存取:

    push(elem); //往队尾添加元素pop(); //从队头移除第一个元素back(); //返回最后一个元素front(); //返回第一个元素empty(); //判断堆栈是否为空size(); //返回栈的大小

    测试

    void test_2() { queue<int> q; q.push(1); q.push(4); q.push(6); q.push(9); cout<<"队列大小为:"<<q.size()<<endl; cout<<"队头元素为:"<<q.front()<<endl; cout<<"队尾元素为:"<<q.back()<<endl; q.pop(); cout<<"队列大小为:"<<q.size()<<endl; cout<<"队头元素为:"<<q.front()<<endl; cout<<"队尾元素为:"<<q.back()<<endl; }
    Processed: 0.017, SQL: 10