本文整理汇总了C++中MaxHeap::empty方法的典型用法代码示例。如果您正苦于以下问题:C++ MaxHeap::empty方法的具体用法?C++ MaxHeap::empty怎么用?C++ MaxHeap::empty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MaxHeap
的用法示例。
在下文中一共展示了MaxHeap::empty方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main()
{
MinHeap<int> minHeap;
MaxHeap<int> maxHeap;
minHeap.push(10);
minHeap.push(5);
minHeap.push(12);
minHeap.push(3);
minHeap.push(4);
maxHeap.push(10);
maxHeap.push(5);
maxHeap.push(12);
maxHeap.push(3);
maxHeap.push(4);
while ( !minHeap.empty()) {
std::cout << minHeap.top() << " ";
minHeap.pop();
}
std::cout << std::endl;
while ( !maxHeap.empty()) {
std::cout << maxHeap.top() << " ";
maxHeap.pop();
}
std::cout << std::endl;
}
示例2: greedyKnapsack
double greedyKnapsack(knapsack &k){
MaxHeap<float, int>* heap = new MaxHeap<float, int>(&compare);
for(int counter = 0; counter < k.getNumObjects(); counter++){
double key = (double) k.getValue(counter) / k.getCost(counter);
heap->add(key, counter);
}
while(! heap->empty()){
int next = heap->extractMaxHeapMaximum();
if(k.getCost(next) + k.getCurrentCost() <= k.getCostBound()){
k.select(next);
}
}
return k.getCurrentValue();
}
示例3: addNum
void addNum(int num) {
if (max_heap_.empty()) {
max_heap_.push(num);
} else {
if (num > max_heap_.top()) {
min_heap_.push(num);
} else {
max_heap_.push(num);
}
// Maintain abs(max_heap_.size() - min_heap_.size()) <= 1
if (max_heap_.size() > min_heap_.size() + 1) { // max_heap_ too large
min_heap_.push(max_heap_.top());
max_heap_.pop();
} else if (min_heap_.size() >
max_heap_.size() + 1) { // min_heap_ too large
max_heap_.push(min_heap_.top());
min_heap_.pop();
}
}
}