首页 > 其他分享 >STL-stack模拟实现

STL-stack模拟实现

时间:2024-02-27 22:33:59浏览次数:24  
标签:STL st st1 push include stack 模拟 con

#pragma once


#include<assert.h>
#include<list>
#include<vector>
#include<deque>
#include<iostream>
using std::cout;
using std::endl;
using std::cin;
namespace test
{

    //template<class T, class Containers=std::vector<T>>
    template<class T, class Containers=std::deque<T>>
    class stack
    {
    private:
        Containers con;
    public:
        void push(const T& val)
        {
            con.push_back(val);//尾插尾删
        }
        void pop()
        {
            con.pop_back();
        }
        const T& top()
        {
            return con.back();
        }
        bool empty()
        {
            return con.empty();
        }

        size_t size()
        {
            return con.size();
        }





    };




    //测试用例
    //stack的使用
    void test_stack1()
    {
        stack<int> st1;
        st1.push(1);
        st1.push(2);
        st1.push(3);
        while (!st1.empty())
        {
            cout << st1.top() << endl;
            st1.pop();
        }
    }

    void test_stack2()
    {
        stack<int,std::list<int>> st;
        st.push(1);
        st.push(2);
        st.push(3);
        while (!st.empty())
        {
            cout << st.top()<<endl;
            st.pop();
        }
    }
}

 

标签:STL,st,st1,push,include,stack,模拟,con
From: https://www.cnblogs.com/DSCL-ing/p/18038574

相关文章

  • STL-queue模拟实现
    #include<list>#include<assert.h>#include<deque>#include<iostream>usingstd::cout;usingstd::endl;usingstd::cin;namespacetest{//template<classT,classContainers=std::list<T>>template<classT,c......
  • 2024.2.27模拟赛T2题解
    题目有一个神奇的结论\(\foralla<b<c,a\oplusc>min(a\oplusb,b\oplusc)\)然后就可以写出\(n^2\)dp,再用TRIE树优化即可code#include<bits/stdc++.h>usingnamespacestd;#defineN200005#defineintlonglongintn,k1,k2;inta[N],fl[2];constintm......
  • C++ STL 容器 list类型
    C++STL容器list类型list对于异常支持很好,要么成功,要么不会发生什么事情以下是std::list在异常处理方面表现良好的几个原因:动态内存管理:std::list使用动态内存分配来存储元素,这意味着它会在需要时自动分配内存,并在不再需要时释放内存。这种自动管理可以减少内存泄漏和悬......
  • C++ STL 容器-Deque
    C++STL容器-Dequestd::deque(双端队列)是C++标准模板库(STL)中的一个容器,它支持在序列的两端快速插入和删除元素。与std::vector和std::list等其他序列容器相比,std::deque在某些特定场景下具有独特的优势。元素的访问和迭代比vector慢,迭代器不是普通的指针。以下是std::deque的一......
  • 安卓模拟器
    安卓模拟器种类雷电夜神逍遥雷神模拟器本质安卓模拟器的本质是一台小型的虚拟机以雷电9模拟器为例在雷电9模拟器的安装目录下有一个vms文件,里面存储着虚拟机的信息 随便点开一个虚拟机分析文件目录下的三个vmdk文件,与安卓手机的文件系统一一对应!data存储用户......
  • C++ STL 容器-Vector类型
    C++STL容器-Vector类型std::vector是C++标准库中的一个动态数组容器,它提供了随机访问迭代器,因此你可以像使用普通数组一样使用vector。vector容器可以动态地增长和缩小,这意味着你可以在不预先指定数组大小的情况下向其中添加或删除元素。特点动态大小:vector的大小可以在运......
  • DC-DC 5-100V 输入大电流8A PWM调光 模拟调光
    产品描述APS54083是一款PWM工作模式,高效率、外围简单、外置功率MOS管,适用于5-220V输入高精度降压LED恒流驱动芯片。输出最大功率150W最大电流6A。APS54083可实现线性调光和PWM调光,线性调光脚有效电压范围0.5-2.5V.PWM调光频率范围100HZ-30KHZ。APS5408......
  • C++ STL 容器-array类型
    C++STL容器-array类型array是C++11STL封装的数组,内存分配在栈中stack,绝对不会重新分配,随机访问创建和初始化//下面的等同于inta[10];std::array<int,10>as1;//分配空间但是未初始化std::array<int,10>as2={};//分配空间并且初始化std::array<int,3>as3={1,2,3};基......
  • 模拟退火学习笔记
    Whatis%你退火说到%你退火我就会想到一个人,那就是\(S.Kirkpatrick,C.D.Gelatt\)和\(M.P.Vecchi\)。(wy2024届传奇oi/数学大师,@yanxu_cn)模拟退火是一种基于物理冶金学中固体物质退火过程的启发式优化算法。它是一种全局优化算法,通常用于求解复杂的组合优化问题。该算法的灵感......
  • NOI 2024省选OIFC模拟21 蒲巴巴 超繁做法
    题目描述一年一度的PuBaBa杯开始了!今年的PuBaBa杯总共有\(n\)个选手来参加,编号分别为\(1,2,\cdots,n\),他们的水平按编号依次递增,所以他们过的题目数量单调不降。作为本场比赛的出题人,PuBaBa总共出了\(m\)道题,他希望第\(i\)道题至少有\(l_i\)个选手通过,至多有\(......