std::flat_map<Key,T,Compare,KeyContainer,MappedContainer>:: flat_map
|
flat_map
(
)
: flat_map ( key_compare ( ) ) { } |
(1) | (depuis C++23) |
|
template
<
class
Allocator
>
flat_map ( const flat_map & , const Allocator & alloc ) ; |
(2) | (depuis C++23) |
|
template
<
class
Allocator
>
flat_map ( flat_map && , const Allocator & alloc ) ; |
(3) | (depuis C++23) |
|
flat_map
(
key_container_type key_cont, mapped_container_type mapped_cont,
const key_compare & comp = key_compare ( ) ) ; |
(4) | (depuis C++23) |
|
template
<
class
Allocator
>
flat_map
(
const
key_container_type
&
key_cont,
|
(5) | (depuis C++23) |
|
template
<
class
Allocator
>
flat_map
(
const
key_container_type
&
key_cont,
|
(6) | (depuis C++23) |
|
flat_map
(
std::
sorted_unique_t
, key_container_type key_cont,
mapped_container_type mapped_cont,
|
(7) | (depuis C++23) |
|
template
<
class
Allocator
>
flat_map
(
std::
sorted_unique_t
,
const
key_container_type
&
key_cont,
|
(8) | (depuis C++23) |
|
template
<
class
Allocator
>
flat_map
(
std::
sorted_unique_t
,
const
key_container_type
&
key_cont,
|
(9) | (depuis C++23) |
|
explicit
flat_map
(
const
key_compare
&
comp
)
: c ( ) , compare ( comp ) { } |
(10) | (depuis C++23) |
|
template
<
class
Allocator
>
flat_map ( const key_compare & comp, const Allocator & alloc ) ; |
(11) | (depuis C++23) |
|
template
<
class
Allocator
>
explicit flat_map ( const Allocator & alloc ) ; |
(12) | (depuis C++23) |
|
template
<
class
InputIter
>
flat_map
(
InputIter first, InputIter last,
|
(13) | (depuis C++23) |
|
template
<
class
InputIter,
class
Allocator
>
flat_map
(
InputIter first, InputIter last,
|
(14) | (depuis C++23) |
|
template
<
class
InputIter,
class
Allocator
>
flat_map ( InputIter first, InputIter last, const Allocator & alloc ) ; |
(15) | (depuis C++23) |
|
template
<
container-compatible-range
<
value_type
>
R
>
flat_map
(
std::
from_range_t
, R
&&
rg,
const
key_compare
&
comp
)
|
(16) | (depuis C++23) |
|
template
<
container-compatible-range
<
value_type
>
R
>
flat_map
(
std::
from_range_t
fr, R
&&
rg
)
|
(17) | (depuis C++23) |
|
template
<
container-compatible-range
<
value_type
>
R,
class
Allocator
>
flat_map ( std:: from_range_t , R && rg, const Allocator & alloc ) ; |
(18) | (depuis C++23) |
|
template
<
container-compatible-range
<
value_type
>
R,
class
Allocator
>
flat_map
(
std::
from_range_t
, R
&&
rg,
const
key_compare
&
comp,
|
(19) | (depuis C++23) |
|
template
<
class
InputIter
>
flat_map
(
std::
sorted_unique_t
s, InputIter first, InputIter last,
|
(20) | (depuis C++23) |
|
template
<
class
InputIter,
class
Allocator
>
flat_map
(
std::
sorted_unique_t
s, InputIter first, InputIter last,
|
(21) | (depuis C++23) |
|
template
<
class
InputIter,
class
Allocator
>
flat_map
(
std::
sorted_unique_t
s, InputIter first, InputIter last,
|
(22) | (depuis C++23) |
|
flat_map
(
std::
initializer_list
<
value_type
>
init,
const
key_compare
&
comp
=
key_compare
(
)
)
|
(23) | (depuis C++23) |
|
template
<
class
Allocator
>
flat_map
(
std::
initializer_list
<
value_type
>
init,
const
key_compare
&
comp,
|
(24) | (depuis C++23) |
|
template
<
class
Allocator
>
flat_map ( std:: initializer_list < value_type > init, const Allocator & alloc ) ; |
(25) | (depuis C++23) |
|
flat_map
(
std::
sorted_unique_t
s,
std::
initializer_list
<
value_type
>
init,
const
key_compare
&
comp
=
key_compare
(
)
)
|
(26) | (depuis C++23) |
|
template
<
class
Allocator
>
flat_map
(
std::
sorted_unique_t
s,
std::
initializer_list
<
value_type
>
init,
|
(27) | (depuis C++23) |
|
template
<
class
Allocator
>
flat_map
(
std::
sorted_unique_t
s,
std::
initializer_list
<
value_type
>
init,
|
(28) | (depuis C++23) |
Construit un nouvel adaptateur de conteneur à partir de diverses sources de données et optionnellement en utilisant l'objet fonction de comparaison fourni par l'utilisateur comp et/ou l'allocateur alloc .
c
avec la copie du contenu de
other.
c
et
compare
avec
other.
compare
.
Voir
la note d'utilisation de l'allocateur
ci-dessous.
c.keys
avec
std
::
move
(
key_cont
)
,
c.values
avec
std
::
move
(
mapped_cont
)
, et
compare
avec
comp
. Trie ensuite la plage sous-jacente
[
begin
(
)
,
end
(
)
)
par rapport à
value_comp()
. Enfin, supprime les éléments dupliqués comme suit :
auto zv = views:: zip ( c. keys , c. values ) ;
auto it = ranges:: unique ( zv, key_equiv ( compare ) ) . begin ( ) ;
auto dist = distance ( zv. begin ( ) , it ) ;
c. keys . erase ( c. keys . begin ( ) + dist, c. keys . end ( ) ) ;
c. values . erase ( c. values . begin ( ) + dist, c. values . end ( ) ) ; .
c.keys
avec
std
::
move
(
key_cont
)
,
c.values
avec
std
::
move
(
mapped_cont
)
, et
compare
avec
comp
.
[
first
,
last
)
, équivalent à
insert
(
first, last
)
;
.
c
avec le contenu de
rg
comme si par
insert_range
(
std::
forward
<
R
>
(
rg
)
)
;
.
[
first
,
last
)
comme si par
insert
(
first, last
)
.
Note pour les surcharges
(13-15,20-22)
: Si
[
first
,
last
)
n'est pas un
intervalle valide
, le comportement est indéfini.
Note for overloads (4-6,13-19,23-25) : If multiple elements in the range have keys that compare equivalent, it is unspecified which element is inserted (pending LWG2844 ).
Sommaire
Note d'utilisation de l'allocateur
Les constructeurs
(2,3,5,6,8,9,11,12,14,15,17,19,21,22,24,25,27,28)
sont équivalents aux constructeurs non-allocateur correspondants, sauf que les conteneurs sous-jacents
Paramètres
Complexité
1)
Constante.
2)
Linéaire en fonction de la taille de
other
.
3)
Identique au constructeur par déplacement correspondant du conteneur encapsulé, c'est-à-dire constant ou linéaire en fonction de la taille de
cont
.
4-6)
Linéaire en
N
si
cont
est trié par rapport à
value_comp()
, sinon
𝓞(N·log(N))
, où
N
est la valeur de
key_cont.
size
(
)
avant cet appel.
7-9)
Identique au constructeur de déplacement correspondant du conteneur encapsulé, c'est-à-dire constant ou linéaire en fonction de la taille de
cont
.
10-12)
Constant.
13-15)
Linéaire en
N
si la plage d'entrée
[
first
,
last
)
est triée par rapport à
value_comp()
, sinon
𝓞(N·log(N))
, où
N
est la valeur de
key_cont.
size
(
)
avant cet appel.
16-19)
Linéaire en
N
si la plage d'entrée
rg
est triée par rapport à
value_comp()
, sinon
𝓞(N·log(N))
, où
N
est la valeur de
key_cont.
size
(
)
avant cet appel.
20-22)
Linéaire en fonction de la taille de
[
first
,
last
)
.
23-25)
Linéaire en
N
si les éléments de
init
sont triés par rapport à
value_comp()
, sinon
𝓞(N·log(N))
, où
N
est la valeur de
key_cont.
size
(
)
avant cet appel.
26-28)
Linéaire en fonction de la taille de
init
.
Exceptions
Les appels à
NotesAprès la construction par déplacement du conteneur (surcharge (3)), les références, pointeurs et itérateurs qui se référaient à l'origine aux éléments dans Exemple
Voir aussi
| ||||||||||||||||||||||||||||||||||||||||||||||