【C++】STL 容器 - stack 堆栈容器 ② ( stack 堆栈容器常用 api 简介 | stack#push 函数 | emplace 函数 | top 函数 | pop 函数 )






一、 stack 堆栈容器常用 api 简介



1、栈顶插入元素 - stack#push 函数


调用 stack 容器的 push 成员函数 , 可以在 堆栈容器的 栈顶插入一个元素 ;

stack#push 函数原型如下 :

void push(const value_type& val);

stack#push 函数 接受一个 常量引用参数 val , 这是要插入的元素 ;

将 val 元素压入栈顶 , 可能会 触发底层容器 的相应操作 , 如 : 分配内存等 ;


特别注意 : stack 堆栈容器 只能在 栈顶进行插入和删除元素的操作 , 不支持在 堆栈的 栈底 或 中部的位置 进行插入和删除操作 ;


2、栈顶构造元素 - stack#emplace 函数


调用 stack 容器的 emplace 成员函数 , 可以直接在 栈顶 构造元素 ;

使用 stack#emplace 函数 向 栈顶添加元素 的优点是 避免了 不必要的 拷贝 或 移动 操作 , 提高了函数的性能 和 执行效率 ;

stack#emplace 函数原型如下 :

void emplace(const value_type& val);

stack#emplace 函数 接受一个 常量引用参数 val , 可以根据该参数的值在栈顶直接构造一个元素 ;


特别注意 : stack 堆栈容器 只能在 栈顶进行插入和删除元素的操作 , 不支持在 堆栈的 栈底 或 中部的位置 进行插入和删除操作 ;


3、获取栈顶元素 - stack#top 函数


调用 stack 容器的 top 成员函数 可以 获取栈顶元素 , 但不删除该元素 , 该元素仍然在 栈顶 , 只是读取 栈顶元素的值 ;

stack#top 函数原型如下 :

const_reference top() const;

该函数返回的是一个 常量引用 , 该引用返回值表示栈顶元素的值 ;

由于 stack 的存取机制是 后进先出 , 最后插入的元素将位于栈顶 , 可以通过调用 top 函数 获取 栈顶元素引用 来查看栈顶元素的值 , 同时不会影响栈的元素结构 ;


4、获取栈顶元素 - stack#pop 函数


stack 容器的 pop 成员函数 用于删除栈顶的元素 , 该操作不会获取栈顶元素 , 只能删除 ;

stack#pop 函数原型如下 :

void pop();

该函数没有参数 , 也没有返回值 , 其作用是 删除栈顶的元素 , 并减小栈的大小 ;


5、获取栈顶元素 - stack#empty 函数


调用 stack 容器的 empty 成员函数 可以检查栈是否为空 ;

stack#empty 函数原型如下 :

bool empty() const;
  • 函数参数 : 该函数没有参数 ;
  • 函数返回值 : 该函数返回一个布尔值 , 表示栈是否为空 ;
    • 如果栈为空 , 则返回 true ;
    • 如果栈不为空 , 否则返回 false ;




二、 代码示例



1、代码示例


代码示例 :

#include "iostream"
using namespace std;
#include "stack"

int main() {
    
    

    // 创建 stack 堆栈容器对象
    std::stack<int> s;

    // 入栈操作 , 插入元素 
    s.push(1);
    // 直接在栈顶构造元素
    s.emplace(2);
    s.push(3);

    // 出栈操作  
    while (!s.empty()) {
    
    
        // 打印栈顶元素
        std::cout << "栈顶元素 : " << s.top() << std::endl;
        // 出栈
        s.pop();
    }

	// 控制台暂停 , 按任意键继续向后执行
	system("pause");

	return 0;
};

2、执行结果


执行结果 :

栈顶元素 : 3
栈顶元素 : 2
栈顶元素 : 1
请按任意键继续. . .

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/han1202012/article/details/135170860