STL queue

เป็น data structure แบบ FIFO ดูรายละเอียดที่ queue

การใช้งาน

ต้องเรียกใช้ header file "queue" และเรียกใช้ namespace std

#include <queue>
 
using namespace std;

การประกาศตัวแปร

ให้ T คือ datatype ใดๆ และ var คือชื่อตัวแปร มีรูปแบบการประกาศตัวแปร queue ดังนี้

queue <T> var;

method

push

คำอธิบาย เป็นการเพิ่มข้อมูลชนิด T ลงทางด้านปลายของ queue เหมือนการ enqueue ใช้เวลา O$(1)$
parameter มีเพียงตัวเดียวคือข้อมูลชนิด T ที่ต้องการจะใส่ลง queue
return ไม่มี
prototype void push(T);

pop

คำอธิบาย เป็นการลบข้อมูลชนิด T ทางด้านหน้าของ queue เหมือนการ dequeue ใช้เวลา $O(1)$
ข้อควรระวัง : หาก size ของ queue เป็น 0 จะเกิด error
parameter ไม่มี
return ไม่มี
prototype void pop();

front

คำอธิบาย เป็นการหาค่าที่อยู่ด้านหน้าของ queue ใช้เวลา $O(1)$
ข้อควรระวัง : หาก size ของ queue เป็น 0 จะเกิด error
parameter ไม่มี
return ข้อมูลชนิด T ที่อยู่ด้านหน้าของ queue
prototype T front();

size

คำอธิบาย เป็นการหาว่าขณะนี้ queue มีขนาดเท่าไหร่ ใช้เวลา $O(1)$
parameter ไม่มี
return จำนวนเต็ม บอกถึงขนาดของ queue
prototype int size();

empty

คำอธิบาย เป็นการหาว่าขณะนี้ queue ว่างหรือไม่ ใช้เวลา $O(1)$
parameter ไม่มี
return ค่า true เมื่อ queue ว่าง (ขนาดเป็น 0)
ค่า false เมื่อ queue ไม่ว่าง (ขนาดมากกว่า 0)
prototype bool empty();

code STL queue

#include <cstdio>
#include <queue>
 
using namespace std;
 
struct ST{
    int a,b;
};
 
int main(){
    queue <int> Q; // []
    Q.push(13); // [13]
    Q.push(12); // [13,12]
    Q.push(11); // [13,12,11]
    Q.push(10); // [13,12,11,10]
    printf("%d\n", Q.front()); // => 13
    Q.pop(); // [12,11,10]
    printf("%d\n", Q.size()); // => 3
    while(!Q.empty())Q.pop(); // []
    Q.pop() // => Error
    Q.top() // => Error
 
    ST tmp;
    queue <ST> T; // []
    tmp.a = 5;
    tmp.b = 3;
    T.push(tmp); // [(5,3)]
    printf("%d\n", T.front().b); // => 3
    return 0;
}
stl
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License