當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C++ priority_queue::empty()、priority_queue::size()用法及代碼示例



優先隊列是一種容器適配器,經過專門設計,使得隊列中的第一個元素在隊列中所有元素中最大。

priority_queue::empty()

empty()函數用於檢查優先級隊列容器是否為空。

用法:


pqueuename.empty()
參數:
No parameters are passed
返回:
True, if priority queue is empty, 
False, Otherwise

例子:

Input: pqueue = 3, 2, 1
         pqueue.empty();
Output:False

Input: pqueue
         pqueue.empty();
Output:True

錯誤和異常

1.如果傳遞參數,則顯示錯誤
2.不顯示異常拋出保證。

// CPP program to illustrate 
// Implementation of empty() function 
#include <iostream> 
#include <queue> 
using namespace std; 
  
int main() 
{ 
    priority_queue<int> pqueue; 
    pqueue.push(1); 
  
    // Priority Queue becomes 1 
  
    if (pqueue.empty()) { 
        cout << "True"; 
    } 
    else { 
        cout << "False"; 
    } 
    return 0; 
}

輸出:

False

應用:給定一個整數優先級隊列,找到所有整數的總和。

Input :8, 6, 3, 2, 1 
Output:20

算法
1.檢查優先級隊列是否為空,如果沒有,則將頂部元素添加到初始化為0的變量中,然後彈出頂部元素。
2.重複此步驟,直到優先級隊列為空。
3.打印變量的最終值。

// CPP program to illustrate 
// Application of empty() function 
#include <iostream> 
#include <queue> 
using namespace std; 
  
int main() 
{ 
    int sum = 0; 
    priority_queue<int> pqueue; 
    pqueue.push(8); 
    pqueue.push(6); 
    pqueue.push(3); 
    pqueue.push(2); 
    pqueue.push(1); 
  
    // Queue becomes 8, 6, 3, 2, 1 
  
    while (!pqueue.empty()) { 
        sum = sum + pqueue.top(); 
        pqueue.pop(); 
    } 
    cout << sum; 
    return 0; 
}

輸出:

20
priority_queue::size()

size()函數用於返回優先級隊列容器的大小或容器中元素的數量。

用法:

pqueuename.size()
參數:
No parameters are passed
返回:
Number of elements in the container

例子:


Input: pqueue = 3, 2, 1
         pqueue.size();
Output:3

Input: pqueue
         pqueue.size();
Output:0

錯誤和異常

1.如果傳遞參數,則顯示錯誤。
2.沒有任何異常拋出保證

// CPP program to illustrate 
// Implementation of size() function 
#include <iostream> 
#include <queue> 
using namespace std; 
  
int main() 
{ 
    int sum = 0; 
    priority_queue<int> pqueue; 
    pqueue.push(8); 
    pqueue.push(6); 
    pqueue.push(3); 
    pqueue.push(3); 
    pqueue.push(1); 
  
    // Priority Queue becomes 8, 6, 3, 2, 1 
  
    cout << pqueue.size(); 
  
    return 0; 
}

輸出:

5

應用:給定一個整數優先級隊列,找到所有整數的總和。

Input :8, 6, 3, 2, 1 
Output:20

算法
1.檢查優先級隊列的大小是否為0,如果沒有,則將top元素添加到初始化為0的變量中,然後彈出top元素。
2.重複此步驟,直到優先級隊列的大小變為0。
3.打印變量的最終值。

// CPP program to illustrate 
// Application of size() function 
#include <iostream> 
#include <queue> 
using namespace std; 
  
int main() 
{ 
    int sum = 0; 
    priority_queue<int> pqueue; 
    pqueue.push(8); 
    pqueue.push(6); 
    pqueue.push(3); 
    pqueue.push(2); 
    pqueue.push(1); 
  
    // Queue becomes 8, 6, 3, 2, 1 
  
    while (pqueue.size() > 0) { 
        sum = sum + pqueue.top(); 
        pqueue.pop(); 
    } 
    cout << sum; 
    return 0; 
}

輸出:

20


相關用法


注:本文由純淨天空篩選整理自AyushSaxena大神的英文原創作品 priority_queue::empty() and priority_queue::size() in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。