首页 > 其他分享 >8 STL-stack

8 STL-stack

时间:2022-11-24 11:47:19浏览次数:39  
标签:const STL s1 元素 stk push stack

 重新系统学习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;
}

 

 


标签:const,STL,s1,元素,stk,push,stack
From: https://www.cnblogs.com/echolxl/p/16921332.html

相关文章

  • 7 STL-deque
    ​ 重新系统学习c++语言,并将学习过程中的知识在这里抄录、总结、沉淀。同时希望对刷到的朋友有所帮助,一起加油哦! 生命就像一朵花,要拼尽全力绽放!死磕自个儿,身心愉悦!......
  • OpenStack OTACA版本安装-3.镜像服务
    1.用数据库连接客户端以 root 用户连接到数据库服务器:$mysql-uroot-p2.创建 glance 数据库:MariaDB[(none)]>CREATEDATABASEglance;3.对``glance``数据......
  • OpenStack OTACA版本安装-2.认证服务
    1.用数据库连接客户端以 root 用户连接到数据库服务器:$mysql-uroot-p2.创建 keystone 数据库:MariaDB[(none)]>CREATEDATABASEkeystone;3.对``keystone......
  • OpenStack OTACA版本安装-1.配置环境
    1.准备CentOS主机主机名:controller角色:控制节点IP:10.0.0.11内存:4G主机名:compute1角色 :计算节点IP:10.0.0.31内存:2G注:主机之间配置host解析2.......
  • stl之六大部件
    有哪六大部件?容器、分配器、算法、迭代器、适配器、仿函数这些部件分别是干啥的?1.容器容器就是数据结构,里面有list链表、queue队列等容器用来放/取东西(也就是数据)容......
  • SpringSecurity登录时报错栈溢出,StackOverflow,SpringSecurity多端登录实现方案
    最近在用springsecurity做一套医疗项目,要求一套后端对应两套前端界面,用户(患者)和医生。先写的用户登录界面,没有问题,再用同样方法写医生登录的时候报错栈溢出stackoverfl......
  • 全球名校AI课程库(41)| WUSTL · 深度神经网络应用全案例实操系列课程『Applications of
    <divalign=center><imgalt="T81-558;ApplicationsofDeepNeuralNetworks;深度神经网络应用案例实操"src="http://tva1.sinaimg.cn/large/0060yMmAly1h6wx48cg8hj31k......
  • 31. 下一个排列(stl的algorithm中next_permutation的实现)
    注:这题思路就是stl的algorithm中next_permutation的实现思路整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。例如,arr=[1,2,3] ,以下这些都可以视作 ......
  • 云原生技术中台 CNStack2.0 正式发布
    作者:奥陌11月5日,在2022杭州·云栖大会上,云原生技术中台CNStack2.0 正式发布。阿里巴巴资深技术专家谢吉宝介绍CNStack2.0企业在数字化转型的过程中,一部分问题得......
  • 云原生技术中台 CNStack2.0 正式发布
    作者:奥陌11月5日,在2022杭州·云栖大会上,云原生技术中台CNStack2.0 正式发布。阿里巴巴资深技术专家谢吉宝介绍CNStack2.0企业在数字化转型的过程中,一部分问......