当前位置: 首页 > news >正文

14-7C++STL的stack容器

(一)stack容器的入栈与出栈

(1)stack容器的简介

stack堆栈容器,“先进后出”的容器,且stack没有迭代器

(2)stack对象的默认构造
stack采用模板类实现,stack对象的默认构造形式stack <T> s;
1.stack <int> stklnt;//一个存放int的stack容器
2.stack <float> stkFloat;//ー个存放float的stack容器
3.stack <string>stkString;//一个存放string的stack容器

stack的push()与pop()方法

stack.push(elem);//栈头添加元素;stack.pop()//栈头移除第一个元素

#include <iostream>
#include <stack>
using namespace std;

int main()
{
    stack<int> stk;
    stk.push(1);
    stk.push(2);
    stk.push(3);
    stk.push(4);
    stk.push(5);

    cout << stk.top() << endl; //top函数返回栈顶元素,不会删除栈顶元素
    stk.pop(); //出栈,删除栈顶元素

    cout << stk.top() << endl; 
    stk.pop(); 

    return 0;
}

#include <iostream>
#include <stack>
using namespace std;

int main()
{
    stack<int> stk;
    stk.push(1);
    stk.push(2);
    stk.push(3);
    stk.push(4);
    stk.push(5);
    while(stk.empty() !=true)
    {
        cout<<stk.top() <<endl;
        stk.pop();
    }

    return 0;
}


(二)stack容器的拷贝构造方法

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

#include <iostream>
#include <stack>
using namespace std;

int main()
{
    stack<int> stk;
    stk.push(1);
    stk.push(2);
    stk.push(3);
    stk.push(4);
    stk.push(5);
    stack<int> stk1(stk);
    while(stk1.empty() !=true)
    {
        cout<<stk1.top()<<endl;
        stk1.pop();
    }
    return 0;
}

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

#include <iostream>
#include <stack>
using namespace std;

int main()
{
    stack<int> stk;
    stk.push(1);
    stk.push(2);
    stk.push(3);
    stk.push(4);
    stk.push(5);
    stack<int> stk1(stk);
    while(stk1.empty() !=true)
    {
        cout<<stk1.top()<<endl;
        stk1.pop();
    }
    stack<int>stk2=stk;
    stk2=stk;
    return 0;
}


(三)stack的大小

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

stack.size();//返回堆栈的大小

#include <iostream>
#include <stack>
using namespace std;

int main()
{
    stack<int> stk;
    stk.push(1);
    stk.push(2);
    stk.push(3);
    stk.push(4);
    stk.push(5);
    cout<<"stk size:"<<stk.size()<<endl;
    return 0;
}

http://www.lryc.cn/news/527410.html

相关文章:

  • Vue 3 中的响应式系统:ref 与 reactive 的对比与应用
  • 物业巡更系统助推社区管理智能化与服务模式创新的研究与应用
  • windows蓝牙驱动开发-生成和发送蓝牙请求块 (BRB)
  • Linux网络之序列化和反序列化
  • linux设置mysql远程连接
  • react-native网络调试工具Reactotron保姆级教程
  • erase() 【删数函数】的使用
  • 性能测试丨内存火焰图 Flame Graphs
  • AIGC的企业级解决方案架构及成本效益分析
  • Linux 入门 常用指令 详细版
  • 【R语言】流程控制
  • 猿人学第一题 js混淆源码乱码
  • 计算机组成原理(2)王道学习笔记
  • 【AI日记】25.01.26
  • 三. Redis 基本指令(Redis 快速入门-03)
  • 设计模式的艺术-代理模式
  • C#新语法
  • 微信小程序压缩图片
  • 通义灵码插件保姆级教学-IDEA(安装及使用)
  • windows下本地部署安装hadoop+scala+spark-【不需要虚拟机】
  • 倍频增量式编码器--角度插值法输出A,B(Aangular Interpolation)
  • LSM对于特殊数据的优化手段
  • 83,【7】BUUCTF WEB [MRCTF2020]你传你[特殊字符]呢
  • Go语言入门指南(二): 数据类型
  • 2025.1.26机器学习笔记:C-RNN-GAN文献阅读
  • FAST-DDS and ROS2 RQT connect
  • GESP2024年3月认证C++六级( 第三部分编程题(2)好斗的牛)
  • 记一次STM32编译生成BIN文件过大的问题(基于STM32CubeIDE)
  • 【暴力洗盘】的实战技术解读-北玻股份和三变科技
  • Day42:列表的组合