當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ stack push()、pop()用法及代碼示例


堆棧是一種具有LIFO(後進先出)類型的容器適配器,其中在一端添加了一個新元素,而(頂部)僅從該端刪除了一個元素。

stack::push()

push()函數用於在堆棧頂部插入元素。元素被添加到堆棧容器中,並且堆棧的大小增加了1。

用法:


stackname.push(value)
參數:
The value of the element to be inserted is passed as the parameter.
Result:
Adds an element of value same as that of 
the parameter passed at the top of the stack.

例子:

Input:  mystack
          mystack.push(6);
Output: 6
 
Input:  mystack
          mystack.push(0);
          mystack.push(1);
Output: 0, 1

錯誤和異常

1.如果傳遞的值與堆棧類型不匹配,則顯示錯誤。
2.如果參數沒有引發任何異常,則不顯示任何引發異常的保證。

// CPP program to illustrate 
// Implementation of push() function 
#include <iostream> 
#include <stack> 
using namespace std; 
  
int main() 
{ 
    // Empty stack 
    stack<int> mystack; 
    mystack.push(0); 
    mystack.push(1); 
    mystack.push(2); 
  
    // Printing content of stack 
    while (!mystack.empty()) { 
        cout << ' ' << mystack.top(); 
        mystack.pop(); 
    } 
}

輸出:

2 1 0
Note that output is printed on the basis of LIFO property
stack::pop()

pop()函數用於從堆棧頂部刪除元素(堆棧中的最新元素)。元素被移到堆棧容器,堆棧的大小減小1。

用法:

stackname.pop()
參數:
No parameters are passed.
Result:
Removes the newest element in the stack
or basically the top element.

例子:

Input:  mystack = 0, 1, 2
          mystack.pop();
Output: 0, 1
 
Input:  mystack = 0, 1, 2, 3, 4, 5
          mystack.pop();
Output: 0, 1, 2, 3, 4

錯誤和異常

1.如果傳遞參數,則顯示錯誤。
2.不顯示異常拋出保證。

// CPP program to illustrate 
// Implementation of pop() function 
#include <iostream> 
#include <stack> 
using namespace std; 
  
int main() 
{ 
    stack<int> mystack; 
    mystack.push(1); 
    mystack.push(2); 
    mystack.push(3); 
    mystack.push(4); 
    // Stack becomes 1, 2, 3, 4 
  
    mystack.pop(); 
    mystack.pop(); 
    // Stack becomes 1, 2 
  
    while (!mystack.empty()) { 
        cout << ' ' << mystack.top(); 
        mystack.pop(); 
    } 
}

輸出:

2 1
Note that output is printed on the basis of LIFO property

應用:
給定多個整數,將它們添加到堆棧中,然後在不使用size函數的情況下找到堆棧的大小。

Input:5, 13, 0, 9, 4
Output:5

算法
1.將給定的元素一張一張地推入堆棧容器。
2.繼續彈出堆棧中的元素直到其變空,然後遞增計數器變量。
3.打印計數器變量。

// CPP program to illustrate 
// Application of push() and pop() function 
#include <iostream> 
#include <stack> 
using namespace std; 
  
int main() 
{ 
    int c = 0; 
    // Empty stack 
    stack<int> mystack; 
    mystack.push(5); 
    mystack.push(13); 
    mystack.push(0); 
    mystack.push(9); 
    mystack.push(4); 
    // stack becomes 5, 13, 0, 9, 4 
  
    // Counting number of elements in queue 
    while (!mystack.empty()) { 
        mystack.pop(); 
        c++; 
    } 
    cout << c; 
}

輸出:

5


相關用法


注:本文由純淨天空篩選整理自AyushSaxena大神的英文原創作品 stack push() and pop() in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。