priority_queue là container adapter mà phần tử đầu tiên (top) luôn là lớn nhất (mặc định dùng less<T>, tức sắp xếp giảm dần). Phần tử có độ ưu tiên cao được phục vụ trước.
Các hàm chính
- pq.size() – Số phần tử.
- pq.push(val) – Thêm phần tử.
- pq.pop() – Xóa phần tử top (lớn nhất).
- pq.top() – Truy cập phần tử lớn nhất.
- pq.empty() – Kiểm tra rỗng.
Ví dụ mã: Menu Priority Queue
#include <iostream>
#include <queue>
#include <string>
#include <cstdlib>
using namespace std;
int main() {
priority_queue<int> pq;
int c, i;
while (true) {
cout << "1. Kích thước Priority Queue\n";
cout << "2. Thêm phần tử\n";
cout << "3. Xóa phần tử top\n";
cout << "4. Phần tử top (lớn nhất)\n";
cout << "5. Thoát\n";
cout << "Nhập lựa chọn: ";
cin >> c;
switch (c) {
case 1:
cout << "Kích thước: " << pq.size() << endl;
break;
case 2:
cout << "Nhập giá trị: ";
cin >> i;
pq.push(i);
break;
case 3:
if (!pq.empty()) {
i = pq.top();
pq.pop();
cout << i << " Đã xóa\n";
} else cout << "Priority Queue rỗng!\n";
break;
case 4:
if (!pq.empty()) cout << "Top: " << pq.top() << endl;
else cout << "Rỗng!\n";
break;
case 5:
return 0;
default:
cout << "Lựa chọn không hợp lệ\n";
}
}
return 0;
}
Kết quả mẫu
1. Kích thước Priority Queue 2. Thêm phần tử 3. Xóa phần tử top 4. Phần tử top (lớn nhất) 5. Thoát Nhập lựa chọn: 1 Kích thước: 0 ... Nhập lựa chọn: 2 Nhập giá trị: 7 ... Nhập lựa chọn: 4 Top: 7 Nhập lựa chọn: 5