在C ++ STL中的priority_queue :: top()
优先队列是一种容器适配器,专门设计为队列的第一个元素是队列中所有元素中最大或最小的。通常,元素按优先级排序。但是在C ++ STL中,默认情况下,顶部元素是最大元素。创建优先队列时,我们还可以通过传递附加参数来使最小元素位于顶部。它类似于最小/最大堆。
priority_queue :: top()
top()函数用于引用优先队列的顶部元素。默认情况下,C ++ STL中的顶(默认)元素是最大元素。
但是在其他编程语言中,例如Java,默认情况下创建小堆,并且top()给出最小元素。
语法:
pqueuename.top()
参数:
不需要传递任何值作为参数。
返回:
优先级队列容器中的顶部(默认情况下是最大元素)
直接参考。
例子:
错误和异常 1.如果优先队列容器为空,则会导致未定义的行为2.如果优先队列不为空,则不会引发任何异常
输出:
时间复杂度: O(1)
辅助空间: O(n)
应用: 给定整数的优先队列,查找素数和非素数的数量。
算法 1.将优先队列的大小输入变量中。 2.检查优先队列是否为空,检查顶部元素是否为素数,如果素数增加素数计数器并弹出顶部元素。 3.重复此步骤,直到优先队列为空。 4.打印变量prime和nonprime(size-prime)的最终值。
输出:
时间复杂度: O(nlogn)
辅助空间: O(1)