重新系统学习c++语言,并将学习过程中的知识在这里抄录、总结、沉淀。同时希望对刷到的朋友有所帮助,一起加油哦!

 生命就像一朵花,要拼尽全力绽放!死磕自个儿,身心愉悦!

写在前面,本篇章主要介绍STL中常用容器stack。

1.1 stack的基本概念

概念:

        栈容器。

stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口。

可以这样理解: 

栈容器:可以想象成一只放砖块的小桶。

数据:是砖块,先放入的只能后拿出。即先进后出

先放入的砖块放到桶底(栈底),后放入的砖块在桶顶(栈顶)

编辑

stack特性:

  • 栈容器符合 先进后出
  • 栈中只有栈顶元素才能被外界访问到,因此不允许遍历
  • 栈可以判断容器是否为空,empty();
  • 栈可以返回元素个数,size();
  • 栈中进入数据称为 入栈
  • 栈中拿出数据称为 出栈

1.2 常用接口

构造函数:

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

赋值操作:

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

数据存取:

  • push(elem);                 //向栈顶添加元素
  • pop();                         //从栈顶移除第一个元素
  • top();                          //返回栈顶元素

大小操作:

  • empty();                   //判断堆栈是否为空
  • size();                      //返回栈的大小

示例:


#include <iostream>
#include <string>
#include<stack> using namespace std; // 栈常用接口
void test() {
//stack<T> stk; //stack采用模板类实现, stack对象的默认构造形式
stack<int> s1;
s1.push(1);
s1.push(2);
s1.push(3); //stack(const stack& stk); //拷贝构造函数
stack<int> s2(s1); //赋值操作:
//stack& operator=(const stack& stk); //重载等号操作符
stack<int> s3;
s3 = s1; //数据存取:
//push(elem); //向栈顶添加元素
//pop(); //从栈顶移除第一个元素
//top(); //返回栈顶元素
//大小操作:
//empty(); //判断堆栈是否为空
//size(); //返回栈的大小
while (!s1.empty()) {
cout << "s1 的栈顶元素为:" << s1.top() << endl;
s1.pop();
}
cout << "s1 的size为" << s1.size() << endl;
} int main() {
test(); system("pause");
return 0;
}

8 STL-stack的更多相关文章

  1. STL stack 容器

    STL stack 容器 Stack简介 stack是堆栈容器,是一种“先进后出”的容器.      stack是简单地装饰deque容器而成为另外的一种容器.      #include <s ...

  2. 浅谈C++ STL stack 容器

    浅谈C++ STL stack 容器 本篇随笔简单介绍一下\(C++STL\)中\(stack\)容器的使用方法和常见的使用技巧. stack容器的概念 \(stack\)在英文中是栈的意思.栈是一种 ...

  3. C++ 标准模板库(STL)-stack

    主要介绍一下C++11版本中标准模板库中栈的用法,希望可以帮到需要用的人. #include <iostream> #include <stack> #include < ...

  4. C++ STL stack和queue

    C++ STL中独立的序列式容器只有vector,list,deque三种,stack和queue其实就是使用容器适配器对deque进行了封装,使用了新接口. 使用标准库的栈和队列时,先包含相关的头文 ...

  5. C++ STL stack 用法

    Stack(栈)是一种后进先出的数据结构,也就是LIFO(last in first out) ,最后加入栈的元素将最先被取出来,在栈的同一端进行数据的插入与取出,这一段叫做“栈顶”. 使用STL的s ...

  6. <泛> STL - stack 模拟实现

    今天,看C++Template的时候看到那人写了一个Stack,于是乎,手痒,自己也写了一个,在拜读了STD文件和C++模板元编程某些小节之后,你们就看到了这篇代码. 经过上述一番经历之后,我重新写了 ...

  7. 洛谷 P1739 表达式括号匹配【STL/stack/模拟】

    题目描述 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@"作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返 ...

  8. STL——stack

    首先,堆栈是一个线性表,插入和删除只在表的一端进行.这一端称为栈顶(Stack Top),另一端则为栈底(Stack Bottom).堆栈的元素插入称为入栈,元素的删除称为出栈.由于元素的入栈和出栈总 ...

  9. C++ STL——stack和queue

    目录 一 stack容器 二 queue容器 注:原创不易,转载请务必注明原作者和出处,感谢支持! 注:内容来自某培训课程,不一定完全正确! 栈和队列作为经典的数据结构,我们再熟悉不过了.C++ ST ...

  10. STL stack 常见用法详解

    <算法笔记>学习笔记 stack 常见用法详解 stack翻译为栈,是STL中实现的一个后进先出的容器.' 1.stack的定义 //要使用stack,应先添加头文件#include &l ...

随机推荐

  1. 类似微信聊天小程序-网易云信,IM DEMO小程序版本

    类似微信聊天小程序-网易云信,IM DEMO小程序版本 代码地址: https://github.com/netease-im/NIM_Web_Weapp_Demo 云信IM DEMO 小程序版本 ( ...

  2. ProxySQL Cluster 高可用集群 + MySQL MGR环境部署 (多写模式) 部署记录

    文章转载自:https://blog.51cto.com/u_6215974/4937192 ProxySQL 在早期版本若需要做高可用,需要搭建两个实例,进行冗余.但两个ProxySQL实例之间的数 ...

  3. Kubernetes 基本概念与组件

    Kubernetes(简称 K8S) 的出现是容器化技术发展的必然结果,容器化是应用程序级别的虚拟化,运行单个内核上有多个独立的用户空间实例,这些实例就是容器:容器提供了将应用程序的代码.运行时.系统 ...

  4. MinIO监控指南

    官方文档地址:http://docs.minio.org.cn/docs/master/minio-monitoring-guide MinIO服务器通过端点公开监视数据.监视工具可以从这些端点中选择 ...

  5. docker方式安装Redash

    之前使用的项目GitHub地址是https://github.com/dazdata/redash.git,这个是直接复制国外的项目的,地址:https://github.com/getredash/ ...

  6. Winsw将jar包部署为windows服务

    1. 下载Winsw https://github.com/winsw/winsw/releases 下载winsw官网上的xml文件和.exe文件 2. 编辑配置文件 创建一个文件夹demo,将所需 ...

  7. MySQL数据表更新模板

    -- ---------------------------- -- 新增表 -- ---------------------------- CREATE TABLE `biz_circle_lead ...

  8. 黑马程序员关于MongoDB的教程

    基础:https://files.cnblogs.com/files/sanduzxcvbnm/mongodb_base.pdf 理解 MongoDB的业务场景.熟悉MongoDB的简介.特点和体系结 ...

  9. Git使用与心得体会

    Git使用与心得体会 一.闲聊 闲暇时间学一下Git,也算是不用在网页端操作github了 二.Git相关 集中式与分布式 Git是一个分布式的版本控制系统,而传统的SVN则属于集中式 集中式与分布式 ...

  10. Linux安装中文字体(已验证)

    1.安装字体命令 sudo apt install -y fontconfig 2.查看已安装的字体 (1)查看linux已安装字体 fc-list (2)查看linux已安装中文字体 fc-list ...