
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ priority_queue::top() Function
The C++ std::priority_queue::top() function is used to retrieve the highest priority element without removing it from the queue. It is useful for accessing the element with the highest priority without altering the queue state. It simplifies the process of accessing priority elements, helping efficient priority based operations. The time complexity of this function is constant i.e.O(1).
Syntax
Following is the syntax for std::priority_queue::top() function.
const_reference top() const;
Parameters
This function does not accept any parameter.
Return value
This function returns reference to the top element of the priority_queue.
Example
Let's look at the following example, where we are going to get the maximum element in the priority_queue.
#include <iostream> #include <queue> int main() { std::priority_queue<int> a; a.push(11); a.push(333); a.push(2222); std::cout << " " << a.top() << std::endl; return 0; }
Output
Output of the above code is as follows −
2222
Example
Consider the another scenario, where we are going to access the top element of the priority_queue without removing it.
#include <iostream> #include <queue> int main() { std::priority_queue<int> a; a.push(333); a.push(1); a.push(22); a.push(4342); std::cout << "Top element: " << a.top() << std::endl; std::cout << "Size after accessing top element:" << a.size() << std::endl; return 0; }
Output
Following is the output of the above code −
Top element: 4342 Size after accessing top element:4
Example
In the following example, we are going to apply the top() function on the priority_queue initialized with string values.
#include <iostream> #include <queue> using namespace std; int main() { priority_queue<string> a; a.push("Ninja"); a.push("Kawasaki"); a.push("KTM"); cout << " " << a.top() << endl; return 0; }
Output
Let us compile and run the above program, this will produce the following result −
Ninja
Example
Following is the example, where we are going to iteratively access and remove top elements from the priority_queue until it becomes empty.
#include <iostream> #include <queue> int main() { std::priority_queue<int> a; a.push(11); a.push(2); a.push(32); while (!a.empty()) { std::cout << "Top element: " << a.top() << std::endl; a.pop(); } return 0; }
Output
If we run the above code it will generate the following output −
Top element: 32 Top element: 11 Top element: 2