私はC++の初心者です。私は、maxheapとminheapをstd :: priority_queueを使って作成しようとしています。 maxheapを作成するだけでうまく動作しますが、両方では動作しません。私はそのエラーを理解できないようです。 'minHeap'を 'std :: priority_queue、compare>'から 'std :: priority_queue'に変換できませんでした。 インターネットを検索しようとしましたが、無駄です。以下はコードです。エラー: 'minHeap'を 'std :: priority_queue、std :: greater>'から '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);
}
}
'PRIORITY_QUEUE <大きい整数、ベクトル、>' '' 'PRIORITY_QUEUE と同じタイプではありません' PRIORITY_QUEUE '' –
Kevin
PRIORITY_QUEUE、大きい>ではありません... –
Jarod42