_Sequence::value_type> >! class priority_queue {! public:! typedef typename _Sequence::value_type value_type;! typedef typename _Sequence::reference reference;! typedef typename _Sequence::const_reference const_reference;! typedef typename _Sequence::size_type size_type;! typedef _Sequence container_type;! protected:! _Sequence c;! _Compare comp;! public:! explicit priority_queue(const _Compare& __x = _Compare(),! const _Sequence& __s = _Sequence())! : c(__s), comp(__x)! { std::make_heap(c.begin(), c.end(), comp); }! ! bool empty() const { return c.empty(); }! size_type size() const { return c.size(); }! ! const_reference top() const { return c.front(); }! ! void push(const value_type& __x) {! c.push_back(__x);! std::push_heap(c.begin(), c.end(), comp);! }! ! void pop() {! std::pop_heap(c.begin(), c.end(), comp);! c.pop_back();! }! };!