Chuyển tới nội dung chính

std::priority_queue::top

#include <queue>

const_reference top() const;

Trả về tham chiếu đến phần tử có độ ưu tiên cao nhất trong std::priority_queue. Trong std::priority_queue mặc định (max-heap), đây là phần tử lớn nhất.

Tham số

Không có tham số

Giá trị trả về

  • Trả về một tham chiếu hằng (chỉ đọc) đến phần tử có độ ưu tiên cao nhất trong std::priority_queue.

Đặc điểm

  1. Truy cập phần tử ưu tiên cao nhất: top() cung cấp cách thức nhanh chóng và tiện lợi để truy cập phần tử có độ ưu tiên cao nhất của std::priority_queue.
  2. Tham chiếu hằng: top() trả về tham chiếu hằng, nghĩa là bạn không thể thay đổi giá trị của phần tử có độ ưu tiên cao nhất thông qua tham chiếu này.
  3. const: top() là một hàm const, nghĩa là nó không thay đổi trạng thái của std::priority_queue.
  4. Hành vi không xác định khi queue rỗng: Gọi top() trên một std::priority_queue rỗng sẽ dẫn đến hành vi không xác định (undefined behavior). Bạn nên kiểm tra empty() trước khi gọi top().
  5. Không làm thay đổi priority_queue: Gọi top() không làm thay đổi cấu trúc, kích thước hay các phần tử khác của std::priority_queue.
  6. Dựa trên underlying container và hàm so sánh: top() của std::priority_queue dựa trên cách tổ chức dữ liệu của underlying container và hàm so sánh được sử dụng để xác định phần tử có độ ưu tiên cao nhất.
  7. Độ phức tạp: O(1) - thời gian hằng số.

Ví dụ

#include <iostream>
#include <queue>

int main() {
std::priority_queue<int> mypq;

mypq.push(10);
mypq.push(30);
mypq.push(20);

// Truy cập và in ra phần tử có độ ưu tiên cao nhất
std::cout << "Top element: " << mypq.top() << '\n'; // Output: Top element: 30

return 0;
}

Các hàm liên quan

popXóa phần tử có độ ưu tiên cao nhất (phần tử ở đỉnh) của std::priority_queue
pushThêm một phần tử mới vào std::priority_queue