21xrx.com
2024-12-23 00:22:05 Monday
登录
文章检索 我的文章 写文章
C++实现的优先队列
2023-07-01 17:54:41 深夜i     --     --
C++ 优先队列 实现

优先队列是一种特殊的队列,它强调每个元素的优先级。在优先队列中,高优先级的元素先出队,而低优先级的元素则后出队。优先队列是非常常见的数据结构,它被广泛应用于各种算法和应用程序中。

C++是一种非常流行的编程语言,它提供了优先队列的实现。C++的优先队列是一个模板类,它接受一个类型参数和一个可选的比较函数对象。默认情况下,优先队列将元素从小到大排序,使用 std::less 比较函数对象。如果需要将元素从大到小排序,则可以使用 std::greater 比较函数对象。

以下是一个基本的优先队列示例:


#include <iostream>

#include <queue>

int main() {

  std::priority_queue<int> pq;

  pq.push(3);

  pq.push(1);

  pq.push(4);

  while (!pq.empty()) {

    std::cout << pq.top() << std::endl;

    pq.pop();

  }

  return 0;

}

输出:


4

3

1

在这个例子中,我们使用了 C++ 標準庫提供的 STL 优先队列,我们首先创建了一个 int 类型的优先队列,然后将 3、1 和 4 依次入队。由于默认从小到大排序,因此 4 作为最高优先级元素先出队,然后是 3,最后是 1。

C++ STL 优先队列提供了以下成员函数:

- push(const T& val): 在队列末尾添加一个元素。

- pop(): 删除队列顶部元素。

- size(): 返回队列元素数量。

- empty(): 如果队列为空,则返回 true。否则返回 false。

- top(): 返回队列顶部元素的引用。

这些成员函数使 C++ 的优先队列用法简单明了,易于理解和实现。

总之,C++ STL 优先队列是一种方便的数据结构,可用于实现各种算法和应用程序。它不仅能够保存元素,并且能够按照优先级对元素进行排序,并且它的操作非常简单和直观。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复