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