99 typedef typename _Sequence::value_type _Sequence_value_type;
100 __glibcxx_class_requires(_Tp, _SGIAssignableConcept)
101 __glibcxx_class_requires(_Sequence, _FrontInsertionSequenceConcept)
102 __glibcxx_class_requires(_Sequence, _BackInsertionSequenceConcept)
103 __glibcxx_class_requires2(_Tp, _Sequence_value_type, _SameTypeConcept)
105 template<
typename _Tp1,
typename _Seq1>
109 template<
typename _Tp1,
typename _Seq1>
113#if __cplusplus >= 201103L
114 template<
typename _Alloc>
115 using _Uses =
typename
120 typedef typename _Sequence::value_type value_type;
121 typedef typename _Sequence::reference reference;
122 typedef typename _Sequence::const_reference const_reference;
123 typedef typename _Sequence::size_type size_type;
124 typedef _Sequence container_type;
141#if __cplusplus < 201103L
143 queue(
const _Sequence& __c = _Sequence())
151 queue(_Sequence&& __c = _Sequence())
152 :
c(
std::move(__c)) { }
154 template<
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
156 queue(
const _Alloc& __a)
159 template<
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
160 queue(
const _Sequence& __c,
const _Alloc& __a)
163 template<
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
164 queue(_Sequence&& __c,
const _Alloc& __a)
165 :
c(
std::move(__c), __a) { }
167 template<
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
168 queue(
const queue& __q,
const _Alloc& __a)
171 template<
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
172 queue(queue&& __q,
const _Alloc& __a)
173 :
c(
std::move(__q.
c), __a) { }
181 {
return c.empty(); }
195 __glibcxx_requires_nonempty();
206 __glibcxx_requires_nonempty();
217 __glibcxx_requires_nonempty();
228 __glibcxx_requires_nonempty();
243 {
c.push_back(__x); }
245#if __cplusplus >= 201103L
247 push(value_type&& __x)
248 {
c.push_back(std::move(__x)); }
250 template<
typename... _Args>
252 emplace(_Args&&... __args)
270 __glibcxx_requires_nonempty();
274#if __cplusplus >= 201103L
400 typedef typename _Sequence::value_type _Sequence_value_type;
401 __glibcxx_class_requires(_Tp, _SGIAssignableConcept)
402 __glibcxx_class_requires(_Sequence, _SequenceConcept)
403 __glibcxx_class_requires(_Sequence, _RandomAccessContainerConcept)
404 __glibcxx_class_requires2(_Tp, _Sequence_value_type, _SameTypeConcept)
405 __glibcxx_class_requires4(_Compare,
bool, _Tp, _Tp,
406 _BinaryFunctionConcept)
408#if __cplusplus >= 201103L
409 template<
typename _Alloc>
410 using _Uses =
typename
415 typedef typename _Sequence::value_type value_type;
416 typedef typename _Sequence::reference reference;
417 typedef typename _Sequence::const_reference const_reference;
418 typedef typename _Sequence::size_type size_type;
419 typedef _Sequence container_type;
430#if __cplusplus < 201103L
433 const _Sequence&
__s = _Sequence())
435 { std::make_heap(c.begin(), c.end(), comp); }
439 const _Sequence&
__s)
441 { std::make_heap(c.begin(), c.end(), comp); }
445 _Sequence&&
__s = _Sequence())
446 : c(
std::move(
__s)), comp(__x)
447 { std::make_heap(c.begin(), c.end(), comp); }
449 template<
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
451 priority_queue(
const _Alloc& __a)
454 template<
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
456 : c(__a), comp(__x) { }
458 template<
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
461 : c(__c, __a), comp(__x) { }
463 template<
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
464 priority_queue(
const _Compare& __x, _Sequence&& __c,
const _Alloc& __a)
465 : c(
std::move(__c), __a), comp(__x) { }
467 template<
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
469 : c(__q.c, __a), comp(__q.comp) { }
471 template<
typename _Alloc,
typename _Requires = _Uses<_Alloc>>
473 : c(
std::move(__q.c), __a), comp(
std::move(__q.comp)) { }
491#if __cplusplus < 201103L
492 template<
typename _InputIterator>
494 const _Compare& __x = _Compare(),
495 const _Sequence& __s = _Sequence())
498 __glibcxx_requires_valid_range(__first, __last);
499 c.insert(c.end(), __first, __last);
500 std::make_heap(c.begin(), c.end(), comp);
503 template<
typename _InputIterator>
506 const _Sequence&
__s)
509 __glibcxx_requires_valid_range(__first, __last);
510 c.insert(c.end(), __first, __last);
511 std::make_heap(c.begin(), c.end(), comp);
514 template<
typename _InputIterator>
516 const _Compare& __x = _Compare(),
517 _Sequence&&
__s = _Sequence())
518 : c(
std::move(
__s)), comp(__x)
520 __glibcxx_requires_valid_range(__first, __last);
521 c.insert(c.end(), __first, __last);
522 std::make_heap(c.begin(), c.end(), comp);
531 {
return c.empty(); }
545 __glibcxx_requires_nonempty();
561 std::push_heap(c.begin(), c.end(), comp);
564#if __cplusplus >= 201103L
566 push(value_type&& __x)
568 c.push_back(std::move(__x));
569 std::push_heap(c.begin(), c.end(), comp);
572 template<
typename... _Args>
574 emplace(_Args&&... __args)
577 std::push_heap(c.begin(), c.end(), comp);
595 __glibcxx_requires_nonempty();
596 std::pop_heap(c.begin(), c.end(), comp);
600#if __cplusplus >= 201103L
608 swap(comp,
__pq.comp);