[associative.general] (original) (raw)

23 Containers library [containers]

23.4 Associative containers [associative]

23.4.1 General [associative.general]

The header defines the class templatesmap and multimap; the header defines the class templatesset and multiset.

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; template<class InputIterator> using iter-key-type = remove_const_t< tuple_element_t<0, _iter-value-type_<InputIterator>>>; template<class InputIterator> using iter-mapped-type = tuple_element_t<1, _iter-value-type_<InputIterator>>; 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>>>; template<ranges::input_range Range> using range-key-type = remove_const_t<typename ranges::range_value_t<Range>::first_type>; template<ranges::input_range Range> using range-mapped-type = typename ranges::range_value_t<Range>::second_type; 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>;