首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于STL使用heap时的比较函数有关问题

2012-02-05 
关于STL使用heap时的比较函数问题[codeC/C++][/code]#includeiostream#includealgorithm#includevec

关于STL使用heap时的比较函数问题
[code=C/C++][/code]#include<iostream>
#include<algorithm>
#include<vector>
#include<functional>
using namespace std;
int main()
{
int x[]={25,16,23,17,39,81,20,22,43,12};
int sz=sizeof(x)/sizeof(int);
vector<int> v(x,x+sz);

make_heap(v.begin(),v.end(),less<int>() );
int i ;

while(!v.empty())
{
cout<<v[0]<<endl;
pop_heap(v.begin(),v.end() );
v.pop_back();
}

return 0;
}

[解决办法]

C/C++ code
 
int main()
{
int x[]={25,16,23,17,39,81,20,22,43,12};
int sz=sizeof(x)/sizeof(int);
vector <int> v(x,x+sz);

make_heap(v.begin(),v.end(),greater <int>() );
int i ;

while(!v.empty())
{
cout < <v[0] < <endl;
pop_heap(v.begin(),v.end(),greater <int>() );
v.pop_back();
}

return 0;
}

热点排行