📜  堆叠在C++ STL中(1)

📅  最后修改于: 2023-12-03 15:08:08.758000             🧑  作者: Mango

堆叠在C++ STL中

在C++ STL中,堆叠(Stack)是一种容器,用来存储具有后进先出(LIFO)顺序的元素。堆叠中只能在容器的一端进行插入和删除操作,这个端口通常被称为“顶部”。

基本功能

C++ STL中的堆叠提供了以下基本功能:

  1. push(elem):在堆叠的顶部插入一个元素,其复杂度为O(1)。

    stack<int> s;
    s.push(5); // 调用push()函数将5插入到堆叠的顶部
    
  2. pop():移除堆叠顶部的元素,其复杂度为O(1)。

    stack<int> s;
    s.push(5);
    s.pop(); // 调用pop()函数移除堆叠顶部的元素
    
  3. top():获取堆叠顶部的元素,其复杂度为O(1)。

    stack<int> s;
    s.push(5);
    int top = s.top(); // 获取堆叠顶部的元素
    
  4. empty():检查堆叠是否为空,其复杂度为O(1)。

    stack<int> s;
    bool isEmpty = s.empty(); // 检查堆叠是否为空
    
  5. size():获取堆叠中元素的数量,其复杂度为O(1)。

    stack<int> s;
    int size = s.size(); // 获取堆叠中元素的数量
    
示例

下面是一个使用堆叠的简单示例:

#include <iostream>
#include <stack>

using namespace std;

int main()
{
    stack<int> s;

    // 插入元素到堆叠
    s.push(5);
    s.push(2);
    s.push(8);

    // 获取堆叠顶部的元素
    cout << "Top element: " << s.top() << endl;

    // 移除堆叠顶部的元素
    s.pop();

    // 获取堆叠中元素的数量
    cout << "Size of stack: " << s.size() << endl;

    // 检查堆叠是否为空
    if (s.empty())
    {
        cout << "Stack is empty";
    }
    else
    {
        cout << "Stack is not empty";
    }

    return 0;
}

输出结果:

Top element: 8
Size of stack: 2
Stack is not empty
总结

堆叠是C++ STL中的一种容器,用于存储具有后进先出顺序的元素。堆叠提供了插入、移除、获取元素以及检查是否为空等基本功能。使用堆叠可以轻松地实现各种算法和数据结构。