 Open in App
Not now

# priority_queue::empty() and priority_queue::size() in C++ STL

• Difficulty Level : Basic
• Last Updated : 23 Jun, 2022

Priority queues are a type of container adaptors, specifically designed such that the first element of the queue is either the greatest or the smallest of all elements in the queue. However, in C++ STL (by default) the largest element is at the top. We can also create a priority queue having the smallest element at the top by simply passing an extra parameter while creating the priority queue.

priority_queue::empty()

empty() function is used to check if the priority queue container is empty or not. Syntax :

Time complexity: O(1)

```pqueuename.empty()
Parameters :
No parameters are passed
Returns :
True, if priority queue is empty,
False, Otherwise```

Examples:

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

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

Errors and Exceptions 1. Shows error if a parameter is passed 2. Shows no exception throw guarantee.

## CPP

 `// CPP program to illustrate` `// Implementation of empty() function` `#include ` `#include ` `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;` `}`

Output:

`False`

Application : Given a priority queue of integers, find the sum of the all the integers.

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

Algorithm 1. Check if the priority queue is empty, if not add the top element to a variable initialised as 0, and pop the top element. 2. Repeat this step until the priority queue is empty. 3. Print the final value of the variable.

## CPP

 `// CPP program to illustrate` `// Application of empty() function` `#include ` `#include ` `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;` `}`

Output:

`20`
priority_queue::size()

size() function is used to return the size of the priority queue container or the number of elements in the container.

#### Time complexity: O(1)

Syntax :

```pqueuename.size()
Parameters :
No parameters are passed
Returns :
Number of elements in the container```

Examples:

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

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

Errors and Exceptions 1. Shows error if a parameter is passed. 2. Shows no exception throw guarantee

## CPP

 `// CPP program to illustrate` `// Implementation of size() function` `#include ` `#include ` `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;` `}`

Output:

`5`

Application : Given a priority queue of integers, find the sum of the all the integers.

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

Algorithm 1. Check if the size of the priority queue is 0, if not add the top element to a variable initialised as 0, and pop the top element. 2. Repeat this step until the sizeof the priority queue becomes 0. 3. Print the final value of the variable.

## CPP

 `// CPP program to illustrate` `// Application of size() function` `#include ` `#include ` `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;` `}`

Output:

`20`

Let us see the differences in a tabular form -:

My Personal Notes arrow_drop_up
Related Articles