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

最新文章

  1. juqery模板 Templates
  2. Andorid 6连接Libreswan L2TP VPN
  3. BIEE 11g 安装
  4. OC--第一个程序
  5. C#基础加强
  6. UIBarButtonItem-添加自定义Left或者Right按钮 &lt;总结&gt;
  7. puppet常用调试命令
  8. ARCH-LINUX 折(安)腾(装)记
  9. 配置SSH隧道访问Ubuntu服务器上的MongoDB
  10. Erlang调度器细节探析
  11. SmartSql 性能评测
  12. linux systemd详解
  13. (转)python生态环境简介
  14. Linux 第六天
  15. 第 6 章 es5 对象创建和继承
  16. js设计模式总结1
  17. EditText的焦点问题
  18. python--inspect模块
  19. 分析占用了大量CPU处理时间的是Java进程中哪个线程
  20. 用RotateDrawable实现网易云音乐唱片机效果

热门文章

  1. ACL和NAT
  2. docker bridge 到 k8s pod 跨节点网络通信机制演进
  3. 在kibana中查看nginx日志的Discover,Dashboards
  4. 使用prometheus + granafa 监控mysql主从
  5. Alertmanager 概念与配置深入介绍
  6. 虚拟线程 - VirtualThread源码透视
  7. 分布式存储系统之Ceph集群CephFS基础使用
  8. 这些不知道,别说你熟悉 Spring
  9. Chrony时间同步服务
  10. Tauri-Vue3桌面端聊天室|tauri+vite3仿微信|tauri聊天程序EXE