首页 > 编程语言 >C++ Stack

C++ Stack

时间:2023-01-01 18:11:42浏览次数:68  
标签:int CQueue pop stack C++ ans stack2 Stack

C++ Stack基本操作

头文件

#include <stack>

常用成员函数

push(x) // x压入栈顶
top() // 返回栈顶元素的引用
pop() // 弹出栈顶元素
empty() // 栈为空返回true
size() // 返回元素个数

定义stack

stack<储存的类型> 容器名
如:
储存int型数据的栈 stack s;
储存double型数据的栈 stack s;
储存string型数据的栈 stack s;
储存结构体或者类的栈 stack<结构体名> s;

当然也可以定义stack数组:
储存int型数据的栈 stack s[n];
储存double型数据的栈 stack s[n];
等等,n为数组的大小

一个例子

class CQueue {
private:
    stack<int> stack1;
    stack<int> stack2;
public:
    CQueue() {
        
    }
    
    void appendTail(int value) {
        stack1.push(value);
    }
    
    int deleteHead() {
        int temp, ans;
        if(stack2.empty() != true){
            ans = stack2.top();  // pop返回void,应该先top获取元素,再pop掉;
            stack2.pop();
            return ans;
        }
        while(stack1.empty() != true){
            temp = stack1.top();
            stack1.pop();
            stack2.push(temp);
        }

        if(stack2.empty() == true){
            return -1;
        }
        ans = stack2.top();
        stack2.pop();
        return ans;
    }
};

/**
 * Your CQueue object will be instantiated and called as such:
 * CQueue* obj = new CQueue();
 * obj->appendTail(value);
 * int param_2 = obj->deleteHead();
 */

Reference

http://c.biancheng.net/view/478.html
https://blog.csdn.net/weixin_52115456/article/details/127595817

标签:int,CQueue,pop,stack,C++,ans,stack2,Stack
From: https://www.cnblogs.com/ldy-miss/p/17018370.html

相关文章

  • 《C++ —— 笔记》
      this指针在C++中成员变量和成员函数是分开存储的。每一个非静态成员函数只会诞生一份函数实例,也就是说多个同类型的对象会共用一块代码。那么问题是:这一块代码是......
  • C/C++备件管理系统
    C/C++备件管理系统综合项目(二)为某制造企业设计备件管理系统,主要包括如下功能:1)用户登录管理:管理员和普通用户权限及职能:管理员仅1名,为初始成员;普通用户可以是多名,普通用......
  • C/C++ 调用标准库函数实现 std::string to std::wstring 相互字符集变换(转)
    转自:https://blog.csdn.net/liulilittle/article/details/127697458#include<locale>#include<codecvt>#include<string>#include<vector>#if_MSC_VER>=1600......
  • C++ Primer第三章知识点(想起来啥记啥版)
    命名空间#include<iostream>//using声明,当我们使用名字cin时,从命名空间std中获取它usingstd::cin;intmain(){inti;cin>>i;//正确:cin和st......
  • 算法之Floyd-Warshall算法【c++】【图论】【最短路】
    我们作为刚学图论的小蒟蒻,先接触到的算法一定是图上最短路径算法。而最短路算法中最简单的当属Floyd-Warshall算法。下面是一些基本介绍:​该算法可以计算图上任意两点间......
  • C++ | 2-移动
    如何实现移动有分开的拷贝构造和移动构造函数。有swap成员函数,支持和另外一个对象快速交换成员。你的对象的名空间下,应当有一个全局的swap函数,调用成员函数swap来......
  • C++公司员工考勤管理系统[2023-01-01]
    C++公司员工考勤管理系统[2023-01-01]题目15“公司员工考勤管理系统设计”1、问题描述某公司需要存储雇员的编号、姓名、性别、所在部门,级别,并进行工资的计算。其中,雇......
  • 面试笔试刷题 C++ (持续更新)
    阅读C++语言代码输出()​​int​​​​main()​​​​{​​​​int​​​​arr[]={​​​​1​​......
  • OpenCV+yolov3实现目标检测(C++,Python)
    OpenCV+yolov3实现目标检测(C++,Python)  目标检测算法主要分为两类:一类是基于RegionProposal(候选区域)的算法,如R-CNN系算法(R-CNN,FastR-CNN,FasterR-CNN),它们是two-st......
  • C++用finally函数实现当前函数运行结束自动执行一段代码
    我们的需求可能有这样的需求,fun(){    xx;    xx;    xx;    //希望在这里能自动执行一段设定好的代码,实现一些自动清除啥啥啥的操作}核心......