#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
void test(){
vector<double>numbers={2.5,10.0,3.5,6.5,8.0,12.0,1.5,6.0};
// 大顶堆
make_heap(begin(numbers), end(numbers), less<double>());
//小顶堆
// make_heap(begin(numbers), end(numbers), greater<double>());
numbers.push_back(11);
numbers.pop_back();
// 从小到大排序
sort_heap(begin(numbers), end(numbers), less<double>());
// 从大到小排序
// sort_heap(begin(numbers), end(numbers), greater<double>());
for (vector<double>::iterator i = numbers.begin(); i != numbers.end(); ++i) {
cout << *i << " ";
}
cout << endl;
make_heap(begin(numbers), end(numbers));
cout<<"heap top:"<<*(numbers.begin())<<" heap size:"<<numbers.size()<<endl;
if(is_heap(begin(numbers),end(numbers)))
cout << "yse, is heap.\n";
else
cout << "no, is not heap.\n";
}
int main(){
test();
system("pause");
return EXIT_SUCCESS;
}
执行结果
1.5 2.5 3.5 6 6.5 8 10 12
heap top:12 heap size:8
yse, is heap.
请按任意键继续. . .