1. 程式人生 > >c++語言之stack的基本使用

c++語言之stack的基本使用

解釋:

   如果用一種東西去形容他,那就是一頭封閉的,一頭開放的單行道。裡面想要出來,就必須你後面進去的人先出來。裡面容納的人數,就是空間大小數目(maxsize)。

方法:stack<typer> mystack;(定義)

  void push(typer);   該方法就是新增一個typer型別的入棧。

  void pop();            該方法就是在棧中出一個typer型別的元素。但不返回,該元素,只是出棧而已。

  typer top();           該方法就是返回棧的頭頂元素。

  boolean empty();  該方法就是返回棧為不為空,空就是true,不空就是false;

  void size();            該方法就是返回一個數字,表示裡面的棧的元素的個數。

詳細一點的解釋:

通過一個程式碼解釋一下所以的方法吧!

題目:

輸入各個命令,它們對應的格式如下: 
壓入堆疊:push a,a代表壓入堆疊的元素,這裡push和元素之間用空格分隔。
清空堆疊:clear
獲取棧頂元素:top
彈出棧頂元素:pop
當輸入的命令為exit時,程式結束。
當輸入的命令為pop時,請輸出彈出的元素值。
當輸入的命令是top時,請輸出當前棧頂元素值。
注意,如果沒有滿足的元素,請輸出None。

程式碼:

#include <iostream>
#include <stack>
using namespace std;


int main()
{
    stack<int> mystack;
    string str;
    while (cin>>str)
    {
        if (str == "exit")
            break;
        else if (str == "pop")
        {
            if (mystack.size() == 0)
                cout<<"None"<<endl;
            else
            {
                int k = mystack.top();
                mystack.pop();
                cout<<k<<endl;
            }
        }
        else if (str == "top")
        {
            if (mystack.size() == 0)
                cout<<"None"<<endl;
            else
                cout<<mystack.top()<<endl;
        }
        else if (str == "clear")
        {
            while(!mystack.empty())
                mystack.pop();
        }
        else if (str == "push")
        {
            int k;
            cin>>k;
            mystack.push(k);
        }
    }
    return 0;
}

該程式碼詳細的介紹了方法的使用。每一個的方法使用,比較綜合。可以借鑑一下。

以上就是stack在c++中的基本使用規則。