Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ triển khai Priority_Queue trong STL

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