queue เป็นโครงสร้างข้อมูล แบบ FIFO
ต้องนำเข้า header file "queue" โดย #include <queue>
ให้ T คือชนิดข้อมูลใดๆ และ var คือชื่อตัวแปร มีรูปแบบการประกาศตัวแปร queue โดย queue <T> var;
คำอธิบาย
|
เป็นการเพิ่มข้อมูลชนิด T ลงทางด้านปลายของ queue เหมือนการ enqueue ใช้เวลา
|
พารามิเตอร์
|
มีเพียงตัวเดียวคือข้อมูลชนิด T ที่ต้องการจะใส่ลง queue
|
คืนค่า
|
ไม่มี
|
ฟังก์ชั่นต้นแบบ
|
void push(T);
|
ข้อควรระวัง
|
ไม่มี
|
คำอธิบาย
|
เป็นการลบข้อมูลชนิด T ทางด้านหน้าของ queue เหมือนการ dequeue ใช้เวลา
|
พารามิเตอร์
|
ไม่มี
|
คืนค่า
|
ไม่มี
|
ฟังก์ชั่นต้นแบบ
|
void pop();
|
ข้อควรระวัง
|
หาก size ของ queue เป็น 0 จะเกิด error
|
คำอธิบาย
|
เป็นการหาค่าที่อยู่ด้านหน้าของ queue ใช้เวลา
|
พารามิเตอร์
|
ไม่มี
|
คืนค่า
|
ข้อมูลชนิด T ที่อยู่ด้านหน้าของ queue
|
ฟังก์ชั่นต้นแบบ
|
T front();
|
ข้อควรระวัง
|
หาก size ของ queue เป็น 0 จะเกิด error
|
คำอธิบาย
|
เป็นการหาว่าขณะนี้ queue มีขนาดเท่าไหร่ ใช้เวลา
|
พารามิเตอร์
|
ไม่มี
|
คืนค่า
|
จำนวนเต็ม บอกถึงขนาดของ queue
|
ฟังก์ชั่นต้นแบบ
|
int size();
|
ข้อควรระวัง
|
ไม่มี
|
คำอธิบาย
|
เป็นการหาว่าขณะนี้ queue ว่างหรือไม่ ใช้เวลา
|
พารามิเตอร์
|
ไม่มี
|
คืนค่า
|
- ค่า true เมื่อ queue ว่าง (ขนาดเป็น 0)
- ค่า false เมื่อ queue ไม่ว่าง (ขนาดมากกว่า 0)
|
ฟังก์ชั่นต้นแบบ
|
bool empty();
|
ข้อควรระวัง
|
ไม่มี
|
#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(not 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;
}
- stack
- queue
- priority_queue
- deque
- vector
- map
- set