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

关于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;
}