我需要帮助创建一个优先级队列在c++

I need help createing a priority queue in c++

本文关键字:一个 优先级 队列 c++ 帮助 创建      更新时间:2023-10-16

我正在尝试创建一个优先级队列程序,该程序具有字符串作为其数据和数字作为优先级级别,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给出了一个很好的实现片段