在 C++ 中,std::stack 是一個容器適配器,它是在另一個 STL 容器的基礎上提供了一組棧(后進先出)操作。下面是使用 std::stack 的幾個常見用法。
創建一個空的 stack:
std::stack<int> myStack;
這將創建一個空的 std::stack 對象 myStack,其中 int 是堆棧中元素的數據類型。
向 stack 中添加元素:
你可以使用 push() 函數將元素推入棧中,如下所示:
myStack.push(1);
這將向 myStack 中添加一個值為 1 的元素。可以多次使用 push() 來添加更多的元素到棧中。
彈出棧頂元素:
使用 std::stack 的 pop() 函數將從棧頂彈出一個元素,如下所示:
myStack.pop();
這將從棧頂彈出一個元素。
訪問棧頂元素:
使用 top() 函數返回位于棧頂的元素,如下所示:
int topElement = myStack.top();
如果棧是空的,則 top() 函數將導致未定義行為。
判斷棧是否為空:
std::stack 的 empty() 函數返回一個布爾值,表示棧是否為空,如下所示:
bool isEmpty = myStack.empty();
獲取棧的大小:
std::stack 的 size() 函數將返回棧中元素的個數,如下所示:
int stackSize = myStack.size();
復制棧:
您可以使用等號運算符 = 復制一個棧,復制得到的棧將包含與原始棧相同的元素,如下所示:
std::stack<int> myStackCopy = myStack;
這將創建一個新的 std::stack 對象 myStackCopy,其中包含與 myStack 相同的元素。
以上便是 std::stack 的幾個常見用法。注意,std::stack 使用默認分配器來管理內存,也可以通過傳遞一個自定義分配器模板參數來指定自定義分配器。