std::flat_map<Key,T,Compare,KeyContainer,MappedContainer>:: flat_map
|
flat_map
(
)
: flat_map ( key_compare ( ) ) { } |
(1) | (desde C++23) |
|
template
<
class
Allocator
>
flat_map ( const flat_map & , const Allocator & alloc ) ; |
(2) | (desde C++23) |
|
template
<
class
Allocator
>
flat_map ( flat_map && , const Allocator & alloc ) ; |
(3) | (desde C++23) |
|
flat_map
(
key_container_type key_cont, mapped_container_type mapped_cont,
const key_compare & comp = key_compare ( ) ) ; |
(4) | (desde C++23) |
|
template
<
class
Allocator
>
flat_map
(
const
key_container_type
&
key_cont,
|
(5) | (desde C++23) |
|
template
<
class
Allocator
>
flat_map
(
const
key_container_type
&
key_cont,
|
(6) | (desde C++23) |
|
flat_map
(
std::
sorted_unique_t
, key_container_type key_cont,
mapped_container_type mapped_cont,
|
(7) | (desde C++23) |
|
template
<
class
Allocator
>
flat_map
(
std::
sorted_unique_t
,
const
key_container_type
&
key_cont,
|
(8) | (desde C++23) |
|
template
<
class
Allocator
>
flat_map
(
std::
sorted_unique_t
,
const
key_container_type
&
key_cont,
|
(9) | (desde C++23) |
|
explicit
flat_map
(
const
key_compare
&
comp
)
: c ( ) , compare ( comp ) { } |
(10) | (desde C++23) |
|
template
<
class
Allocator
>
flat_map ( const key_compare & comp, const Allocator & alloc ) ; |
(11) | (desde C++23) |
|
template
<
class
Allocator
>
explicit flat_map ( const Allocator & alloc ) ; |
(12) | (desde C++23) |
|
template
<
class
InputIter
>
flat_map
(
InputIter first, InputIter last,
|
(13) | (desde C++23) |
|
template
<
class
InputIter,
class
Allocator
>
flat_map
(
InputIter first, InputIter last,
|
(14) | (desde C++23) |
|
template
<
class
InputIter,
class
Allocator
>
flat_map ( InputIter first, InputIter last, const Allocator & alloc ) ; |
(15) | (desde C++23) |
|
template
<
container-compatible-range
<
value_type
>
R
>
flat_map
(
std::
from_range_t
, R
&&
rg,
const
key_compare
&
comp
)
|
(16) | (desde C++23) |
|
template
<
container-compatible-range
<
value_type
>
R
>
flat_map
(
std::
from_range_t
fr, R
&&
rg
)
|
(17) | (desde C++23) |
|
template
<
container-compatible-range
<
value_type
>
R,
class
Allocator
>
flat_map ( std:: from_range_t , R && rg, const Allocator & alloc ) ; |
(18) | (desde C++23) |
|
template
<
container-compatible-range
<
value_type
>
R,
class
Allocator
>
flat_map
(
std::
from_range_t
, R
&&
rg,
const
key_compare
&
comp,
|
(19) | (desde C++23) |
|
template
<
class
InputIter
>
flat_map
(
std::
sorted_unique_t
s, InputIter first, InputIter last,
|
(20) | (desde C++23) |
|
template
<
class
InputIter,
class
Allocator
>
flat_map
(
std::
sorted_unique_t
s, InputIter first, InputIter last,
|
(21) | (desde C++23) |
|
template
<
class
InputIter,
class
Allocator
>
flat_map
(
std::
sorted_unique_t
s, InputIter first, InputIter last,
|
(22) | (desde C++23) |
|
flat_map
(
std::
initializer_list
<
value_type
>
init,
const
key_compare
&
comp
=
key_compare
(
)
)
|
(23) | (desde C++23) |
|
template
<
class
Allocator
>
flat_map
(
std::
initializer_list
<
value_type
>
init,
const
key_compare
&
comp,
|
(24) | (desde C++23) |
|
template
<
class
Allocator
>
flat_map ( std:: initializer_list < value_type > init, const Allocator & alloc ) ; |
(25) | (desde C++23) |
|
flat_map
(
std::
sorted_unique_t
s,
std::
initializer_list
<
value_type
>
init,
const
key_compare
&
comp
=
key_compare
(
)
)
|
(26) | (desde C++23) |
|
template
<
class
Allocator
>
flat_map
(
std::
sorted_unique_t
s,
std::
initializer_list
<
value_type
>
init,
|
(27) | (desde C++23) |
|
template
<
class
Allocator
>
flat_map
(
std::
sorted_unique_t
s,
std::
initializer_list
<
value_type
>
init,
|
(28) | (desde C++23) |
Construye un nuevo adaptador de contenedor a partir de diversas fuentes de datos y opcionalmente utilizando el objeto de función de comparación proporcionado por el usuario comp y/o el asignador alloc .
c
con la copia de los contenidos de
other.
c
y
compare
con
other.
compare
.
Consulte la
nota de uso del asignador
a continuación.
c.keys
con
std
::
move
(
key_cont
)
,
c.values
con
std
::
move
(
mapped_cont
)
, y
compare
con
comp
. Luego ordena el rango subyacente
[
begin
(
)
,
end
(
)
)
con respecto a
value_comp()
. Finalmente, elimina los elementos duplicados como si fuera por:
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
con
std
::
move
(
key_cont
)
,
c.values
con
std
::
move
(
mapped_cont
)
, y
compare
con
comp
.
[
first
,
last
)
, equivalente a
insert
(
first, last
)
;
.
c
con los contenidos de
rg
como si fuera mediante
insert_range
(
std::
forward
<
R
>
(
rg
)
)
;
.
[
first
,
last
)
como si fuera mediante
insert
(
first, last
)
.
Nota para las sobrecargas
(13-15,20-22)
: Si
[
first
,
last
)
no es un
rango válido
, el comportamiento es indefinido.
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 ).
Contenido
Nota de uso del asignador
Los constructores
(2,3,5,6,8,9,11,12,14,15,17,19,21,22,24,25,27,28)
son equivalentes a los constructores correspondientes sin asignador, excepto que los contenedores subyacentes
Parámetros
Complejidad
1)
Constante.
2)
Lineal en tamaño de
other
.
3)
Igual que el constructor de movimiento correspondiente del contenedor envuelto, es decir, constante o lineal en el tamaño de
cont
.
4-6)
Lineal en
N
si
cont
está ordenado con respecto a
value_comp()
, de lo contrario
𝓞(N·log(N))
, donde
N
es el valor de
key_cont.
size
(
)
antes de esta llamada.
7-9)
Igual que el constructor de movimiento correspondiente del contenedor envuelto, es decir, constante o lineal en el tamaño de
cont
.
10-12)
Constante.
13-15)
Lineal en
N
si el rango de entrada
[
first
,
last
)
está ordenado con respecto a
value_comp()
, de lo contrario
𝓞(N·log(N))
, donde
N
es el valor de
key_cont.
size
(
)
antes de esta llamada.
16-19)
Lineal en
N
si el rango de entrada
rg
está ordenado con respecto a
value_comp()
, de lo contrario
𝓞(N·log(N))
, donde
N
es el valor de
key_cont.
size
(
)
antes de esta llamada.
20-22)
Lineal en el tamaño de
[
first
,
last
)
.
23-25)
Lineal en
N
si los elementos de
init
están ordenados con respecto a
value_comp()
, de lo contrario
𝓞(N·log(N))
, donde
N
es el valor de
key_cont.
size
(
)
antes de esta llamada.
26-28)
Lineal en tamaño de
init
.
Excepciones
Las llamadas a
NotasDespués de la construcción por movimiento del contenedor (sobrecarga (3)), las referencias, los punteros y los iteradores que originalmente se referían a elementos en Ejemplo
Véase también
| ||||||||||||||||||||||||||||||||||||||||||||||