Files
2025-10-25 03:02:53 +03:00

175 lines
6.4 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[priqueue.cons.alloc]
# 23 Containers library [[containers]](./#containers)
## 23.6 Container adaptors [[container.adaptors]](container.adaptors#priqueue.cons.alloc)
### 23.6.4 Class template priority_queue [[priority.queue]](priority.queue#priqueue.cons.alloc)
#### 23.6.4.3 Constructors with allocators [priqueue.cons.alloc]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16224)
If uses_allocator_v<container_type, Alloc> is false the constructors in this subclause shall not participate in overload resolution[.](#1.sentence-1)
[🔗](#lib:priority_queue,constructor)
`template<class Alloc> constexpr explicit priority_queue(const Alloc& a);
`
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16234)
*Effects*: Initializes c with a and value-initializes comp[.](#2.sentence-1)
[🔗](#lib:priority_queue,constructor_)
`template<class Alloc> constexpr priority_queue(const Compare& compare, const Alloc& a);
`
[3](#3)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16245)
*Effects*: Initializes c with a and initializes comp with compare[.](#3.sentence-1)
[🔗](#lib:priority_queue,constructor__)
`template<class Alloc>
constexpr priority_queue(const Compare& compare, const Container& cont, const Alloc& a);
`
[4](#4)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16257)
*Effects*: Initializes c with cont as the first argument and a as the second
argument, and initializes comp with compare;
calls make_heap(c.begin(), c.end(), comp)[.](#4.sentence-1)
[🔗](#lib:priority_queue,constructor___)
`template<class Alloc>
constexpr priority_queue(const Compare& compare, Container&& cont, const Alloc& a);
`
[5](#5)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16271)
*Effects*: Initializes c with std::move(cont) as the first argument and a as the second argument, and initializes comp with compare;
calls make_heap(c.begin(), c.end(), comp)[.](#5.sentence-1)
[🔗](#lib:priority_queue,constructor____)
`template<class Alloc> constexpr priority_queue(const priority_queue& q, const Alloc& a);
`
[6](#6)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16284)
*Effects*: Initializes c with q.c as the first argument and a as
the second argument, and initializes comp with q.comp[.](#6.sentence-1)
[🔗](#lib:priority_queue,constructor_____)
`template<class Alloc> constexpr priority_queue(priority_queue&& q, const Alloc& a);
`
[7](#7)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16296)
*Effects*: Initializes c with std::move(q.c) as the first argument and a as the second argument, and initializes comp with std::move(q.comp)[.](#7.sentence-1)
[🔗](#lib:priority_queue,constructor______)
`template<class InputIterator, class Alloc>
constexpr priority_queue(InputIterator first, InputIterator last, const Alloc& a);
`
[8](#8)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16309)
*Effects*: Initializes c withfirst as the first argument,last as the second argument, anda as the third argument, and
value-initializes comp;
calls make_heap(c.begin(), c.end(), comp)[.](#8.sentence-1)
[🔗](#lib:priority_queue,constructor_______)
`template<class InputIterator, class Alloc>
constexpr priority_queue(InputIterator first, InputIterator last,
const Compare& compare, const Alloc& a);
`
[9](#9)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16327)
*Effects*: Initializes c withfirst as the first argument,last as the second argument, anda as the third argument, and
initializes comp with compare;
calls make_heap(c.begin(), c.end(), comp)[.](#9.sentence-1)
[🔗](#lib:priority_queue,constructor________)
`template<class InputIterator, class Alloc>
constexpr priority_queue(InputIterator first, InputIterator last, const Compare& compare,
const Container& cont, const Alloc& a);
`
[10](#10)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16345)
*Effects*: Initializes c withcont as the first argument and a as the second argument, and
initializes comp with compare;
calls c.insert(c.end(), first, last); and
finally calls make_heap(c.begin(), c.end(), comp)[.](#10.sentence-1)
[🔗](#lib:priority_queue,constructor_________)
`template<class InputIterator, class Alloc>
constexpr priority_queue(InputIterator first, InputIterator last, const Compare& compare,
Container&& cont, const Alloc& a);
`
[11](#11)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16362)
*Effects*: Initializes c withstd::move(cont) as the first argument anda as the second argument, and
initializes comp with compare;
calls c.insert(c.end(), first, last); and
finally calls make_heap(c.begin(), c.end(), comp)[.](#11.sentence-1)
[🔗](#lib:priority_queue,constructor__________)
`template<[container-compatible-range](container.intro.reqmts#concept:container-compatible-range "23.2.2.1Introduction[container.intro.reqmts]")<T> R, class Alloc>
constexpr priority_queue(from_range_t, R&& rg, const Compare& compare, const Alloc& a);
`
[12](#12)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16379)
*Effects*: Initializes comp with compare andc with ranges::to<Container>(std::forward<R>(rg), a);
calls make_heap(c.begin(), c.end(), comp)[.](#12.sentence-1)
[🔗](#lib:priority_queue,constructor___________)
`template<[container-compatible-range](container.intro.reqmts#concept:container-compatible-range "23.2.2.1Introduction[container.intro.reqmts]")<T> R, class Alloc>
constexpr priority_queue(from_range_t, R&& rg, const Alloc& a);
`
[13](#13)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L16393)
*Effects*: Initializesc with ranges::to<Container>(std::forward<R>(rg), a) and value-initializes comp;
calls make_heap(c.begin(), c.end(), comp)[.](#13.sentence-1)