堆棧是一種具有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
相關用法
- C++ priority_queue::push()、priority_queue::pop()用法及代碼示例
- C++ queue::push()、queue::pop()用法及代碼示例
- C++ stack top()用法及代碼示例
- C++ stack emplace()用法及代碼示例
- C++ stack swap()用法及代碼示例
注:本文由純淨天空篩選整理自AyushSaxena大神的英文原創作品 stack push() and pop() in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。