我需要帮助创建一个优先级队列在c++
I need help createing a priority queue in c++
我正在尝试创建一个优先级队列程序,该程序具有字符串作为其数据和数字作为优先级级别,enqueue("Hello", 3);以下是我到目前为止所做的,但是我很难把所有的东西放在一起,任何帮助我应该做不同的事情或帮助我编写程序将非常感激。
我认为我应该将队列存储在一个vector中,并以某种方式将其中的数据排序以匹配相应的优先级。
#include <iostream>
#include <string>
#include <vector>
using namespace std;
template <class T1, class T2>
class PriQueue
{
public:
//PriQueue();
void enqueue(T1 str, T2 pri); //Adds to queue
void dequeue(T1 str, T2 pri); //Deletes from queue
void peek(T1 str, T2 pri); //Prints the the first in queue
void size(T1 size); //Prints how many in queue
T1 printQ();
private:
T1 s;
T2 p;
};
template <class T1, class T2>
void PriQueue<T1, T2>::enqueue(T1 str, T2 pri) //Adding an element to the queue
{
this->s = str;
this->p = pri;
}
template <class T1, class T2>
void PriQueue<T1, T2>::dequeue(T1 str, T2 pri) //Removing an element from the front of the queue
{
}
template <class T1, class T2>
void PriQueue<T1, T2>::peek(T1 str, T2 pri) //Returning a value at front of the queue (NOT removing it)
{
}
template <class T1, class T2>
void PriQueue<T1, T2>::size(T1 size) //Returning the number of items in the queue.
{
}
using namespace std;
int main()
{
PriQueue<string, int> que;
que.enqueue("Hello", 3);
que.enqueue("Bye", 2);
que.enqueue("No", 5);
cout << que.printQ() << endl;
return 0;
}
我建议您使用cppreference来指定std::priority_queue。我想这应该有帮助。wikipedia上的Priority Queue给出了一个很好的实现片段
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 用C++中的一个变量定义一个常量
- 在一个指令中声明更多指针的运算符优先级
- 为什么我们需要在优先级队列声明中添加一个向量作为参数?
- 我正在声明一个自定义优先级队列,包括 pair<pair<int,int>int >,如何清除它?
- 运算符重载,成员函数和非成员函数,哪一个具有优先级
- 正在提取优先级队列的最后一个元素
- 如何在不遍历优先级队列的情况下获取该队列的最后一个元素
- C++在else/if中声明一个优先级队列
- 一个编译器中的运算符优先级不同,为什么
- c++一个固定大小的优先级队列,用于存储k个最近邻居
- 我如何用C++构建一个优先级队列,它先给偶数,然后给奇数
- 从优先级队列中获取一个unique_ptr
- c++标准算法,用最低优先级的运算符分隔一个表达式为两个表达式
- 我需要帮助创建一个优先级队列在c++
- Qt:如何让一个线程等待临时包障,并暂时增加另一个线程的优先级以删除 roadbock?