C++ STL 中的栈 (3.5)


在 C++ STL 中,栈用作容器,其实现为 LIFO 结构。LIFO 表示后进先出。可以将栈想象成一堆书,书一本叠在一本上面,最后放入的书将首先被移除,这就是为什么它被称为 LIFO 结构。

与栈相关的操作有:

  • top() - 此函数返回对栈顶元素的引用。

    语法 - name_of_stack.top()

    参数 - 无参数

    返回值 - 对栈容器顶端元素的引用

  • push() - 此函数用于将元素插入到栈容器中。

    语法 - name_of_stack.push(element)

    参数 - 此函数接受要插入的元素。

    返回值 - 它不返回任何值。

  • pop() - 此函数用于从栈容器中移除元素。

    语法 - name_of_stack.pop()

    参数 - 无参数

    返回值 - 它移除栈顶元素并返回它。

  • size() - 此函数用于计算栈中存在的元素总数。

    语法 - name_of_stack.size()

    参数 - 无参数

    返回值 - 它返回栈中元素的数量。

  • empty() - 此函数用于检查栈是否为空。

    语法 - name_of_stack.empty()

    参数 - 无参数

    返回值 - 它返回布尔值 true 或 false。栈为空时为 true,栈不为空时为 false。

示例

 在线演示

#include <bits/stdc++.h>
using namespace std;
int main(){
   //create a stack container
   stack <int> newStack;
   //insert elements to a stack
   newStack.push(10);
   newStack.push(20);
   newStack.push(30);
   newStack.push(40);
   //check whether the values are pushed in stack or not
   //using empty()
   if(!newStack.empty()){
      //calculate size of a stack
      cout<<"Stack size is: "<< newStack.size();
   }
   else{
      cout<<"Stack is empty";
   }
   cout<<"\nElements in the stack are:";
   while(!newStack.empty()){
      cout<<" "<< newStack.top();
      newStack.pop();
   }
   return 0;
}

输出

Stack size is: 4
Elements in the stack are: 40 30 20 10

更新于:2020年4月24日

373 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告