gcc中的stl源码在 /usr/include/c++/4.1.2/bits/
其中Priority_queue的构造函数比较奇葩
template<typename _Tp, typename _Sequence = vector<_Tp>,
typename _Compare = less<typename _Sequence::value_type> >
class priority_queue
{
_Sequence c;
_Compare comp;
priority_queue(const _Compare& __x = _Compare(),
const _Sequence& __s = _Sequence())
: c(__s), comp(__x)
{ std::make_heap(c.begin(), c.end(), comp); }
}
其实这种写法挺好的,这样的话,就能将一个未排序的vector,直接进行heap操作
但是如果只是
priority_queue<int> que;
首先会调用vector的构造函数,然后再调用其拷贝构造函数