23
Containers library
[containers]
23.4
Associative containers
[associative]
23.4.1
General
[associative.general]
1
#
The header
<map>
defines the class templates
map
and
multimap
; the header
<set>
defines the class templates
set
and
multiset
.
2
#
The following exposition-only alias templates may appear in deduction guides for associative containers:
template
<
class
InputIterator
>
using
iter-value-type
=
typename
iterator_traits
<
InputIterator
>
::
value_type;
//
exposition only
template
<
class
InputIterator
>
using
iter-key-type
=
remove_const_t
<
tuple_element_t
<
0
,
iter-value-type
<
InputIterator
>
>
>
;
//
exposition only
template
<
class
InputIterator
>
using
iter-mapped-type
=
tuple_element_t
<
1
,
iter-value-type
<
InputIterator
>
>
;
//
exposition only
template
<
class
InputIterator
>
using
iter-to-alloc-type
=
pair
<
add_const_t
<
tuple_element_t
<
0
,
iter-value-type
<
InputIterator
>
>
>
, tuple_element_t
<
1
,
iter-value-type
<
InputIterator
>
>
>
;
//
exposition only
template
<
ranges
::
input_
range
Range
>
using
range-key-type
=
remove_const_t
<
typename
ranges
::
range_value_t
<
Range
>
::
first_type
>
;
//
exposition only
template
<
ranges
::
input_
range
Range
>
using
range-mapped-type
=
typename
ranges
::
range_value_t
<
Range
>
::
second_type;
//
exposition only
template
<
ranges
::
input_
range
Range
>
using
range-to-alloc-type
=
pair
<
add_const_t
<
typename
ranges
::
range_value_t
<
Range
>
::
first_type
>
,
typename
ranges
::
range_value_t
<
Range
>
::
second_type
>
;
//
exposition only