STL标准库之《stack原理与实战分析》

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: STL标准库之《stack原理与实战分析》

一、stack栈原理

  c++stack(堆栈)是一个容器的改编,它实现了一个先进后出的数据结构(FILO),使用该容器时需要包含#include<stack>头文件;

定义stack对象示例:

stack<int>s1;
stack<string>s2;

stack的基本操作:

     s.empty()               如果栈为空返回true,否则返回false  
     s.size()                返回栈中元素的个数  
     s.pop()                 删除栈顶元素但不返回其值  
     s.top()                 返回栈顶的元素,但不删除该元素  
     s.push()                在栈顶压入新元素  


二、stack栈实战分析

//栈 stack支持 empty() size() top() push() pop()
#include <stack>
#include <vector>
#include <list>
#include <cstdio>
using namespace std;

int main()
{
  //可以使用list或vector作为栈的容器,默认是使用deque的。
  stack<int, list<int>>      a;
  stack<int, vector<int>>   b;
  int i;

  //压入数据
  for (i = 0; i < 10; i++)
  {
    a.push(i);
    b.push(i);
  }

  //栈的大小
  printf("%d %d\n", a.size(), b.size());

  //取栈项数据并将数据弹出栈
  while (!a.empty())
  {
    printf("%d ", a.top());
    a.pop();
  }
  putchar('\n');

  while (!b.empty())
  {
    printf("%d ", b.top());
    b.pop();
  }
  putchar('\n');

  return 0;
}

运行结果如下:

image.png

相关文章
|
5月前
|
存储 自然语言处理 安全
C++ STL标准库 《string原理与实战分析》
C++ STL标准库 《string原理与实战分析》
82 0
|
5月前
|
存储 算法 C语言
STL标准模板库《实战案例汇总》
STL标准模板库《实战案例汇总》
62 1
|
4月前
|
算法 前端开发 C++
C++基础知识(八:STL标准库 deque )
deque在C++的STL(Standard Template Library)中是一个非常强大的容器,它的全称是“Double-Ended Queue”,即双端队列。deque结合了数组和链表的优点,提供了在两端进行高效插入和删除操作的能力,同时保持了随机访问的特性。
|
5月前
|
存储 算法 大数据
STL标准库之《deque原理与实战分析》
STL标准库之《deque原理与实战分析》
48 0
|
5月前
|
大数据 C++ 索引
C++ STL标准库 《vector向量原理与实战分析》
C++ STL标准库 《vector向量原理与实战分析》
54 0
|
6月前
|
存储 C语言 C++
【C++进阶(二)】STL大法--vector的深度剖析以及模拟实现
【C++进阶(二)】STL大法--vector的深度剖析以及模拟实现
|
存储 Rust 安全
Rust 动态数组Vec基本概念及其用法
Rust中的Vec是一种动态数组,它可以在运行时自动调整大小。Vec是Rust标准库的一部分,提供了一种高效、安全的方式来处理大量数据。基于堆内存申请的连续动态数据类型,其索引、压入(push)、弹出(pop) 操作的时间复杂度为 O(1)。
346 0
Rust 动态数组Vec基本概念及其用法
|
存储 C++ 容器
STL空间配置器框架分析
STL空间配置器框架分析
104 0
|
算法 测试技术 编译器
【C++】STL——list深度剖析 及 模拟实现
【C++】STL——list深度剖析 及 模拟实现
88 0
|
算法 C++ 容器
【C++】STL——vector 深度剖析 及 模拟实现(一)
【C++】STL——vector 深度剖析 及 模拟实现(一)
112 0