ใน C++ STL สแต็กถูกใช้เป็นคอนเทนเนอร์ซึ่งถูกนำไปใช้เป็นโครงสร้าง LIFO LIFO หมายถึง เข้าก่อนออกก่อน กองสามารถมองเป็นกองหนังสือ โดยที่หนังสือถูกจัดเรียงไว้เหนืออีกเล่มหนึ่ง และเล่มสุดท้ายที่ใส่เข้าไปจะเป็นเล่มแรกที่จะถูกถอดออก จึงเรียกว่าเป็นโครงสร้าง LIFO

การดำเนินการที่เกี่ยวข้องกับสแต็กคือ -
-
บน() - ฟังก์ชันนี้จะคืนค่าการอ้างอิงไปยังองค์ประกอบบนสุดของสแต็ก
ไวยากรณ์ - name_of_stack.top()
พารามิเตอร์ - ไม่มีพารามิเตอร์
คืนค่า - อ้างอิงถึงองค์ประกอบบนสุดของคอนเทนเนอร์สแต็ก
-
ดัน() - ฟังก์ชันนี้ใช้เพื่อแทรกองค์ประกอบลงในคอนเทนเนอร์สแต็ก
ไวยากรณ์ - name_of_stack.push(องค์ประกอบ)
พารามิเตอร์ - ฟังก์ชันนี้ใช้องค์ประกอบที่จะแทรก
คืนค่า - ไม่คืนอะไรเลย
-
ป๊อป() - ฟังก์ชันนี้ใช้เพื่อลบองค์ประกอบออกจากคอนเทนเนอร์สแต็ก
ไวยากรณ์ - name_of_stack.pop()
พารามิเตอร์ - ไม่มีพารามิเตอร์
คืนค่า - ลบองค์ประกอบบนสุดของสแต็กแล้วส่งคืน
-
ขนาด() - ฟังก์ชันนี้ใช้เพื่อคำนวณจำนวนองค์ประกอบทั้งหมดที่มีอยู่ในสแต็ก
ไวยากรณ์ - name_of_stack.size()
พารามิเตอร์ - ไม่มีพารามิเตอร์
คืนค่า - ส่งกลับจำนวนองค์ประกอบในกอง
-
ว่างเปล่า() - ฟังก์ชั่นนี้ใช้ตรวจสอบว่า stack ว่างหรือไม่
ไวยากรณ์ - name_of_stack.empty()
พารามิเตอร์ - ไม่มีพารามิเตอร์
คืนค่า - ส่งคืนค่าบูลีนที่เป็นจริงหรือเท็จ เป็นจริงเมื่อสแต็กว่างเปล่าและเป็นเท็จเมื่อสแต็กไม่ว่างเปล่า
ตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
int main(){
//create a stack container
stack <int> newStack;
//insert elements to a stack
newStack.push(10);
newStack.push(20);
newStack.push(30);
newStack.push(40);
//check whether the values are pushed in stack or not
//using empty()
if(!newStack.empty()){
//calculate size of a stack
cout<<"Stack size is: "<< newStack.size();
}
else{
cout<<"Stack is empty";
}
cout<<"\nElements in the stack are:";
while(!newStack.empty()){
cout<<" "<< newStack.top();
newStack.pop();
}
return 0;
} ผลลัพธ์
Stack size is: 4 Elements in the stack are: 40 30 20 10