저는 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 –
Kevin
''priority_queue, 큰> '동일한 타입이 아닌''보다 priority_queue ... –
Jarod42