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

本文涉及的产品
大数据开发治理平台 DataWorks,不限时长
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
简介: 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

相关文章
|
18天前
|
存储 自然语言处理 安全
C++ STL标准库 《string原理与实战分析》
C++ STL标准库 《string原理与实战分析》
20 0
|
18天前
|
存储 算法 大数据
STL标准库之《deque原理与实战分析》
STL标准库之《deque原理与实战分析》
15 0
|
17天前
|
大数据 C++ 索引
C++ STL标准库 《vector向量原理与实战分析》
C++ STL标准库 《vector向量原理与实战分析》
19 0
|
2月前
|
编译器 C++ 容器
【C++初阶】STL详解(八)List的模拟实现
【C++初阶】STL详解(八)List的模拟实现
45 0
|
2月前
|
机器学习/深度学习 算法 C++
C++模板与STL【STL概述】
C++模板与STL【STL概述】
|
12月前
|
算法 Linux 编译器
【c++ • STL】初步认识什么是 STL 标准库
【c++ • STL】初步认识什么是 STL 标准库
96 1
|
12月前
|
存储 C++ 容器
STL空间配置器框架分析
STL空间配置器框架分析
70 0
|
12月前
|
存储 算法 C语言
STL库之动态数组vector基本使用方法
STL库之动态数组vector基本使用方法
|
算法 测试技术 编译器
【C++】STL——list深度剖析 及 模拟实现
【C++】STL——list深度剖析 及 模拟实现
67 0
|
算法 编译器 Linux
【C++】STL——vector 深度剖析 及 模拟实现(二)
【C++】STL——vector 深度剖析 及 模拟实现(二)
66 0