void print(vector<int> &ivec)
{
copy(ivec.begin(),ivec.end(),ostream_iterator<int>(cout," "));
cout<<endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[] = {9,1,3,5,65,7,99,2,4,6,8,0,11,15,12,14};
const int num = sizeof(a) / sizeof(a[0]);
vector<int> ivec(a,a + num);
print(ivec);
cout<<"heap:"<<endl;
make_heap(ivec.begin(),ivec.end(),less<int>());
print(ivec);
cout<<"push new element"<<endl;
ivec.push_back(100);
push_heap(ivec.begin(),ivec.end());
print(ivec);
cout<<"pop max"<<endl;
pop_heap(ivec.begin(),ivec.end());
print(ivec);
ivec.pop_back();
print(ivec);
cout<<"heap sort"<<endl;
sort_heap(ivec.begin(),ivec.end());
print(ivec);
return 0;
}