.TH "std::priority_queue< _Tp, _Sequence, _Compare >" 3cxx "libstdc++" \" -*- nroff -*- .ad l .nh .SH NAME std::priority_queue< _Tp, _Sequence, _Compare > \- A standard container automatically sorting its contents\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .SS "Public Types" .in +1c .ti -1c .RI "\fBtypedef\fP _Sequence::const_reference \fBconst_reference\fP" .br .ti -1c .RI "\fBtypedef\fP _Sequence \fBcontainer_type\fP" .br .ti -1c .RI "\fBtypedef\fP _Sequence::reference \fBreference\fP" .br .ti -1c .RI "\fBtypedef\fP _Sequence::size_type \fBsize_type\fP" .br .ti -1c .RI "\fBtypedef\fP _Compare \fBvalue_compare\fP" .br .ti -1c .RI "\fBtypedef\fP _Sequence::value_type \fBvalue_type\fP" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "template<\fBtypename\fP \fB_Seq\fP = _Sequence, \fBtypename\fP _Requires = typename enable_if<__and_, is_default_constructible<_Seq>>::value>::type> \fBpriority_queue\fP ()" .br .RI "Default constructor creates no elements\&. " .ti -1c .RI "template<\fBtypename\fP \fB_InputIterator\fP > \fBpriority_queue\fP (\fB_InputIterator\fP __first, \fB_InputIterator\fP __last, \fBconst\fP _Compare &__x, \fBconst\fP _Sequence &\fB__s\fP)" .br .RI "Builds a queue from a range\&. " .ti -1c .RI "template<\fBtypename\fP \fB_InputIterator\fP > \fBpriority_queue\fP (\fB_InputIterator\fP __first, \fB_InputIterator\fP __last, \fBconst\fP _Compare &__x=_Compare(), _Sequence &&\fB__s\fP=_Sequence())" .br .ti -1c .RI "template<\fBtypename\fP _Alloc , \fBtypename\fP _Requires = _Uses<_Alloc>> \fBpriority_queue\fP (\fBconst\fP _Alloc &__a)" .br .ti -1c .RI "template<\fBtypename\fP _Alloc , \fBtypename\fP _Requires = _Uses<_Alloc>> \fBpriority_queue\fP (\fBconst\fP _Compare &__x, _Sequence &&__c, \fBconst\fP _Alloc &__a)" .br .ti -1c .RI "\fBpriority_queue\fP (\fBconst\fP _Compare &__x, _Sequence &&\fB__s\fP=_Sequence())" .br .ti -1c .RI "template<\fBtypename\fP _Alloc , \fBtypename\fP _Requires = _Uses<_Alloc>> \fBpriority_queue\fP (\fBconst\fP _Compare &__x, \fBconst\fP _Alloc &__a)" .br .ti -1c .RI "template<\fBtypename\fP _Alloc , \fBtypename\fP _Requires = _Uses<_Alloc>> \fBpriority_queue\fP (\fBconst\fP _Compare &__x, \fBconst\fP _Sequence &__c, \fBconst\fP _Alloc &__a)" .br .ti -1c .RI "\fBpriority_queue\fP (\fBconst\fP _Compare &__x, \fBconst\fP _Sequence &\fB__s\fP)" .br .ti -1c .RI "template<\fBtypename\fP _Alloc , \fBtypename\fP _Requires = _Uses<_Alloc>> \fBpriority_queue\fP (\fBconst\fP \fBpriority_queue\fP &__q, \fBconst\fP _Alloc &__a)" .br .ti -1c .RI "template<\fBtypename\fP _Alloc , \fBtypename\fP _Requires = _Uses<_Alloc>> \fBpriority_queue\fP (\fBpriority_queue\fP &&__q, \fBconst\fP _Alloc &__a)" .br .ti -1c .RI "template \fBvoid\fP \fBemplace\fP (\fB_Args\fP &&\&.\&.\&. \fB__args\fP)" .br .ti -1c .RI "_GLIBCXX_NODISCARD bool \fBempty\fP () \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBpop\fP ()" .br .RI "Removes first element\&. " .ti -1c .RI "\fBvoid\fP \fBpush\fP (\fBconst\fP value_type &__x)" .br .RI "Add data to the queue\&. " .ti -1c .RI "\fBvoid\fP \fBpush\fP (value_type &&__x)" .br .ti -1c .RI "size_type \fBsize\fP () \fBconst\fP" .br .ti -1c .RI "\fBvoid\fP \fBswap\fP (\fBpriority_queue\fP &\fB__pq\fP) \fBnoexcept\fP(__and_, __is_nothrow_swappable< _Compare > >::value)" .br .ti -1c .RI "const_reference \fBtop\fP () \fBconst\fP" .br .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "_Sequence \fBc\fP" .br .ti -1c .RI "_Compare \fBcomp\fP" .br .in -1c .SH "Detailed Description" .PP .SS "template<\fBtypename\fP _Tp, \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> .br class std::priority_queue< _Tp, _Sequence, _Compare >"A standard container automatically sorting its contents\&. .PP \fBTemplate Parameters\fP .RS 4 \fI_Tp\fP Type of element\&. .br \fI_Sequence\fP Type of underlying sequence, defaults to vector<_Tp>\&. .br \fI_Compare\fP Comparison function object type, defaults to less<_Sequence::value_type>\&. .RE .PP This is not a true container, but an \fIadaptor\fP\&. It holds another container, and provides a wrapper interface to that container\&. The wrapper is what enforces priority-based sorting and queue behavior\&. Very few of the standard container/sequence interface requirements are met (e\&.g\&., iterators)\&. .PP The second template parameter defines the type of the underlying sequence/container\&. It defaults to std::vector, but it can be any type that supports \fCfront()\fP, \fCpush_back\fP, \fCpop_back\fP, and random-access iterators, such as std::deque or an appropriate user-defined type\&. .PP The third template parameter supplies the means of making priority comparisons\&. It defaults to \fCless\fP but can be anything defining a strict weak ordering\&. .PP Members not found in \fInormal\fP containers are \fCcontainer_type\fP, which is a typedef for the second Sequence parameter, and \fCpush\fP, \fCpop\fP, and \fCtop\fP, which are standard queue operations\&. .PP \fBNote\fP .RS 4 No equality/comparison operators are provided for priority_queue\&. .PP Sorting of the elements takes place as they are added to, and removed from, the priority_queue using the priority_queue's member functions\&. If you access the elements by other means, and change their data such that the sorting order would be different, the priority_queue will not re-sort the elements for you\&. (How could it know to do so?) .RE .PP .PP Definition at line \fB443\fP of file \fBstl_queue\&.h\fP\&. .SH "Member Typedef Documentation" .PP .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> \fBtypedef\fP _Sequence::const_reference \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::const_reference" .PP Definition at line \fB475\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> \fBtypedef\fP _Sequence \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::container_type" .PP Definition at line \fB477\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> \fBtypedef\fP _Sequence::reference \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::reference" .PP Definition at line \fB474\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> \fBtypedef\fP _Sequence::size_type \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::size_type" .PP Definition at line \fB476\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> \fBtypedef\fP _Compare \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::value_compare" .PP Definition at line \fB480\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> \fBtypedef\fP _Sequence::value_type \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::value_type" .PP Definition at line \fB473\fP of file \fBstl_queue\&.h\fP\&. .SH "Constructor & Destructor Documentation" .PP .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> template<\fBtypename\fP \fB_Seq\fP = _Sequence, \fBtypename\fP _Requires = typename enable_if<__and_, is_default_constructible<_Seq>>::value>::type> \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::priority_queue ()\fC [inline]\fP" .PP Default constructor creates no elements\&. .PP Definition at line \fB501\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::priority_queue (\fBconst\fP _Compare & __x, \fBconst\fP _Sequence & __s)\fC [inline]\fP, \fC [explicit]\fP" .PP Definition at line \fB505\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::priority_queue (\fBconst\fP _Compare & __x, _Sequence && __s = \fC_Sequence()\fP)\fC [inline]\fP, \fC [explicit]\fP" .PP Definition at line \fB510\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> template<\fBtypename\fP _Alloc , \fBtypename\fP _Requires = _Uses<_Alloc>> \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::priority_queue (\fBconst\fP _Alloc & __a)\fC [inline]\fP, \fC [explicit]\fP" .PP Definition at line \fB516\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> template<\fBtypename\fP _Alloc , \fBtypename\fP _Requires = _Uses<_Alloc>> \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::priority_queue (\fBconst\fP _Compare & __x, \fBconst\fP _Alloc & __a)\fC [inline]\fP" .PP Definition at line \fB520\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> template<\fBtypename\fP _Alloc , \fBtypename\fP _Requires = _Uses<_Alloc>> \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::priority_queue (\fBconst\fP _Compare & __x, \fBconst\fP _Sequence & __c, \fBconst\fP _Alloc & __a)\fC [inline]\fP" .PP Definition at line \fB526\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> template<\fBtypename\fP _Alloc , \fBtypename\fP _Requires = _Uses<_Alloc>> \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::priority_queue (\fBconst\fP _Compare & __x, _Sequence && __c, \fBconst\fP _Alloc & __a)\fC [inline]\fP" .PP Definition at line \fB532\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> template<\fBtypename\fP _Alloc , \fBtypename\fP _Requires = _Uses<_Alloc>> \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::priority_queue (\fBconst\fP \fBpriority_queue\fP< _Tp, _Sequence, _Compare > & __q, \fBconst\fP _Alloc & __a)\fC [inline]\fP" .PP Definition at line \fB537\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> template<\fBtypename\fP _Alloc , \fBtypename\fP _Requires = _Uses<_Alloc>> \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::priority_queue (\fBpriority_queue\fP< _Tp, _Sequence, _Compare > && __q, \fBconst\fP _Alloc & __a)\fC [inline]\fP" .PP Definition at line \fB541\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> template<\fBtypename\fP \fB_InputIterator\fP > \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::priority_queue (\fB_InputIterator\fP __first, \fB_InputIterator\fP __last, \fBconst\fP _Compare & __x, \fBconst\fP _Sequence & __s)\fC [inline]\fP" .PP Builds a queue from a range\&. .PP \fBParameters\fP .RS 4 \fI__first\fP An input iterator\&. .br \fI__last\fP An input iterator\&. .br \fI__x\fP A comparison functor describing a strict weak ordering\&. .br \fI__s\fP An initial sequence with which to start\&. .RE .PP Begins by copying \fI__s\fP, inserting a copy of the elements from \fI\fP[first,last) into the copy of \fI__s\fP, then ordering the copy according to \fI__x\fP\&. .PP For more information on function objects, see the documentation on \fBfunctor base classes\fP\&. .PP Definition at line \fB573\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> template<\fBtypename\fP \fB_InputIterator\fP > \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::priority_queue (\fB_InputIterator\fP __first, \fB_InputIterator\fP __last, \fBconst\fP _Compare & __x = \fC_Compare()\fP, _Sequence && __s = \fC_Sequence()\fP)\fC [inline]\fP" .PP Definition at line \fB584\fP of file \fBstl_queue\&.h\fP\&. .SH "Member Function Documentation" .PP .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> template \fBvoid\fP \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::emplace (\fB_Args\fP &&\&.\&.\&. __args)\fC [inline]\fP" .PP Definition at line \fB643\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> _GLIBCXX_NODISCARD bool \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::empty () const\fC [inline]\fP" Returns true if the queue is empty\&. .PP Definition at line \fB599\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> \fBvoid\fP \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::pop ()\fC [inline]\fP" .PP Removes first element\&. This is a typical queue operation\&. It shrinks the queue by one\&. The time complexity of the operation depends on the underlying sequence\&. .PP Note that no data is returned, and if the first element's data is needed, it should be retrieved before pop() is called\&. .PP Definition at line \fB662\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> \fBvoid\fP \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::push (\fBconst\fP value_type & __x)\fC [inline]\fP" .PP Add data to the queue\&. .PP \fBParameters\fP .RS 4 \fI__x\fP Data to be added\&. .RE .PP This is a typical queue operation\&. The time complexity of the operation depends on the underlying sequence\&. .PP Definition at line \fB627\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> \fBvoid\fP \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::push (value_type && __x)\fC [inline]\fP" .PP Definition at line \fB635\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> size_type \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::size () const\fC [inline]\fP" Returns the number of elements in the queue\&. .PP Definition at line \fB604\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> \fBvoid\fP \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::swap (\fBpriority_queue\fP< _Tp, _Sequence, _Compare > & __pq)\fC [inline]\fP, \fC [noexcept]\fP" .PP Definition at line \fB671\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> const_reference \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::top () const\fC [inline]\fP" Returns a read-only (constant) reference to the data at the first element of the queue\&. .PP Definition at line \fB612\fP of file \fBstl_queue\&.h\fP\&. .SH "Member Data Documentation" .PP .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> _Sequence \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::c\fC [protected]\fP" .PP Definition at line \fB484\fP of file \fBstl_queue\&.h\fP\&. .SS "template<\fBtypename\fP _Tp , \fBtypename\fP _Sequence = vector<_Tp>, \fBtypename\fP _Compare = less> _Compare \fBstd::priority_queue\fP< _Tp, _Sequence, _Compare >::comp\fC [protected]\fP" .PP Definition at line \fB485\fP of file \fBstl_queue\&.h\fP\&. .SH "Author" .PP Generated automatically by Doxygen for libstdc++ from the source code\&.