112 lines
5.3 KiB
Markdown
112 lines
5.3 KiB
Markdown
[flat.multimap.cons.alloc]
|
||
|
||
# 23 Containers library [[containers]](./#containers)
|
||
|
||
## 23.6 Container adaptors [[container.adaptors]](container.adaptors#flat.multimap.cons.alloc)
|
||
|
||
### 23.6.9 Class template flat_multimap [[flat.multimap]](flat.multimap#cons.alloc)
|
||
|
||
#### 23.6.9.4 Constructors with allocators [flat.multimap.cons.alloc]
|
||
|
||
[1](#1)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L18623)
|
||
|
||
The constructors in this subclause shall not participate in overload resolution
|
||
unless uses_allocator_v<key_container_type, Alloc> is true and uses_allocator_v<mapped_container_type, Alloc> is true[.](#1.sentence-1)
|
||
|
||
[ð](#lib:flat_multimap,constructor)
|
||
|
||
`template<class Alloc>
|
||
constexpr flat_multimap(const key_container_type& key_cont,
|
||
const mapped_container_type& mapped_cont, const Alloc& a);
|
||
template<class Alloc>
|
||
constexpr flat_multimap(const key_container_type& key_cont,
|
||
const mapped_container_type& mapped_cont,
|
||
const key_compare& comp, const Alloc& a);
|
||
`
|
||
|
||
[2](#2)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L18640)
|
||
|
||
*Effects*: Equivalent to flat_multimap(key_cont, mapped_cont) andflat_multimap(key_cont, mapped_cont, comp), respectively,
|
||
except that *c*.keys and *c*.values are constructed
|
||
with uses-allocator construction ([[allocator.uses.construction]](allocator.uses.construction "20.2.8.2 Uses-allocator construction"))[.](#2.sentence-1)
|
||
|
||
[3](#3)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L18647)
|
||
|
||
*Complexity*: Same as flat_multimap(key_cont, mapped_cont) andflat_multimap(key_cont, mapped_cont, comp), respectively[.](#3.sentence-1)
|
||
|
||
[ð](#lib:flat_multimap,constructor_)
|
||
|
||
`template<class Alloc>
|
||
constexpr flat_multimap(sorted_equivalent_t, const key_container_type& key_cont,
|
||
const mapped_container_type& mapped_cont, const Alloc& a);
|
||
template<class Alloc>
|
||
constexpr flat_multimap(sorted_equivalent_t, const key_container_type& key_cont,
|
||
const mapped_container_type& mapped_cont, const key_compare& comp,
|
||
const Alloc& a);
|
||
`
|
||
|
||
[4](#4)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L18665)
|
||
|
||
*Effects*: Equivalent to flat_multimap(sorted_equivalent, key_cont, mapped_cont) andflat_multimap(sorted_equivalent, key_cont, mapped_cont, comp), respectively,
|
||
except that *c*.keys and *c*.values are constructed
|
||
with uses-allocator construction ([[allocator.uses.construction]](allocator.uses.construction "20.2.8.2 Uses-allocator construction"))[.](#4.sentence-1)
|
||
|
||
[5](#5)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L18672)
|
||
|
||
*Complexity*: Linear[.](#5.sentence-1)
|
||
|
||
[ð](#lib:flat_multimap,constructor__)
|
||
|
||
`template<class Alloc>
|
||
constexpr explicit flat_multimap(const Alloc& a);
|
||
template<class Alloc>
|
||
constexpr flat_multimap(const key_compare& comp, const Alloc& a);
|
||
template<class Alloc>
|
||
constexpr flat_multimap(const flat_multimap&, const Alloc& a);
|
||
template<class Alloc>
|
||
constexpr flat_multimap(flat_multimap&&, const Alloc& a);
|
||
template<class InputIterator, class Alloc>
|
||
constexpr flat_multimap(InputIterator first, InputIterator last, const Alloc& a);
|
||
template<class InputIterator, class Alloc>
|
||
constexpr flat_multimap(InputIterator first, InputIterator last, const key_compare& comp,
|
||
const Alloc& a);
|
||
template<class InputIterator, class Alloc>
|
||
constexpr flat_multimap(sorted_equivalent_t, InputIterator first, InputIterator last,
|
||
const Alloc& a);
|
||
template<class InputIterator, class Alloc>
|
||
constexpr flat_multimap(sorted_equivalent_t, InputIterator first, InputIterator last,
|
||
const key_compare& comp, const Alloc& a);
|
||
template<[container-compatible-range](container.intro.reqmts#concept:container-compatible-range "23.2.2.1 Introduction [container.intro.reqmts]")<value_type> R, class Alloc>
|
||
constexpr flat_multimap(from_range_t, R&& rg, const Alloc& a);
|
||
template<[container-compatible-range](container.intro.reqmts#concept:container-compatible-range "23.2.2.1 Introduction [container.intro.reqmts]")<value_type> R, class Alloc>
|
||
constexpr flat_multimap(from_range_t, R&& rg, const key_compare& comp, const Alloc& a);
|
||
template<class Alloc>
|
||
constexpr flat_multimap(initializer_list<value_type> il, const Alloc& a);
|
||
template<class Alloc>
|
||
constexpr flat_multimap(initializer_list<value_type> il, const key_compare& comp,
|
||
const Alloc& a);
|
||
template<class Alloc>
|
||
constexpr flat_multimap(sorted_equivalent_t, initializer_list<value_type> il, const Alloc& a);
|
||
template<class Alloc>
|
||
constexpr flat_multimap(sorted_equivalent_t, initializer_list<value_type> il,
|
||
const key_compare& comp, const Alloc& a);
|
||
`
|
||
|
||
[6](#6)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L18715)
|
||
|
||
*Effects*: Equivalent to the corresponding non-allocator constructors
|
||
except that *c*.keys and *c*.values are constructed
|
||
with uses-allocator construction ([[allocator.uses.construction]](allocator.uses.construction "20.2.8.2 Uses-allocator construction"))[.](#6.sentence-1)
|