STL容器适配器之<stack>

文章目录

    • 测试环境
    • stack介绍
    • 头文件
    • 模块类定义
    • 对象构造
    • 初始化
    • 元素访问
    • 元素插入和删除
    • 容器大小
    • 迭代器
    • 其他函数

测试环境

系统:ubuntu 22.04.2 LTS 64位
gcc版本:11.3.0
编辑器:vsCode 1.76.2

stack介绍

  1. 栈为容器适配器。
  2. 要求先进后出(LIFO)。
  3. 仅能从栈顶插入元素和获取元素。
  4. 默认以deque容器作为基础容器,可以指定使用list、vector作为基础容器;或者其他支持back()、push_back()、pop_back()的容器都可以
  5. 不支持迭代器

头文件

#include 

模块类定义

_Tp:表示存储的元素数据类型
_Alloc:表示所存储分配器的类型,负责元素内存的分配和释放。可选参数,一般不使用。

template<typename _Tp, typename _Sequence = deque<_Tp> > class stack{};

对象构造

/*构造默认栈对象*/
std::stack<int> stackInt;
/*构造以deque作为基础容器的栈*/
std::stack<int, std::deque<int> > deqStack;
/*构造以vector作为基础容器的栈*/
std::stack<int, std::vector<int> > vctStack;
/*构造以list作为基础容器的栈*/
std::stack<int, std::list<int> > lstStack;

初始化

/*使用push函数使元素入栈*/
deqStack.push(100);
deqStack.push(200);
deqStack.push(300);

元素访问

函数名 返回值 功能
top() 栈顶元素的引用 获取首元素,栈为非空时才可以使用
/* 访问栈顶元素 */
std::cout << deqStack.top() << std::endl;
/*修改栈顶元素*/
int &iTop = deqStack.top()
iTop = 66;
std::cout << deqStack.top() << std::endl;

元素插入和删除

函数 返回值 功能
pop() 删除栈顶元素
push() 元素入栈
/*在栈顶插入元素*/
deqStack.push(88);
/*删除栈顶元素*/
deqStack.pop();

容器大小

函数 返回值 功能
empty() bool 判断当前容器是否为空,为空返回true,否则返回false
size() std::size_t 获取当前容器中的元素数量
/*判断栈是否为空*/
std::cout << std::boolalpha << stackInt.empty() << std::endl;
/*获取当前容器中的元素数量*/
std::cout << deqStack.size() << std::endl;

迭代器

不支持

其他函数

你可能感兴趣的:(STL标准模板库,c++,开发语言,STL)