Je suis un débutant en C++. J'essaie de créer un maxheap et un minheap en utilisant std :: priority_queue. Créer juste un maxheap fonctionne bien mais pas les deux. Je n'arrive pas à comprendre l'erreur. Je reçois l'erreur suivante: n'a pas pu convertir 'minHeap' de 'std :: priority_queue, comparer>' à 'std :: priority_queue' J'ai essayé de chercher sur internet mais en vain. Voici le code.erreur: impossible de convertir 'minHeap' de 'std :: priority_queue, std :: greater>' en 'std :: priority_queue
void addNum(int num, priority_queue<int> maxHeap, priority_queue<int> minHeap) {
if (minHeap.size() == 0 || num > minHeap.top())
minHeap.push(num);
else if (num < minHeap.top())
maxHeap.push(num);
}
void createHeaps(vector<int> a) {
priority_queue<int> maxHeap;
priority_queue<int, vector<int>, greater<int> > minHeap;
for (int i = 0; i < a.size(); ++i) {
int num = a[i];
addNum(num, maxHeap, minHeap);
}
}
un 'priority, plus >' est pas un '' priority –
Kevin
'priority, plus >' est pas le même type que '' ... priority_queue –
Jarod42