[associative.general] # 23 Containers library [[containers]](./#containers) ## 23.4 Associative containers [[associative]](associative#general) ### 23.4.1 General [associative.general] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L11363) The header [](associative.map.syn#header:%3cmap%3e "23.4.2 Header synopsis [associative.map.syn]") defines the class templatesmap and multimap; the header [](associative.set.syn#header:%3cset%3e "23.4.5 Header synopsis [associative.set.syn]") defines the class templatesset and multiset[.](#1.sentence-1) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L11369) The following exposition-only alias templates may appear in deduction guides for associative containers:templateusing *iter-value-type* =typename iterator_traits::value_type; // *exposition only*templateusing *iter-key-type* = remove_const_t< tuple_element_t<0, *iter-value-type*>>; // *exposition only*templateusing *iter-mapped-type* = tuple_element_t<1, *iter-value-type*>; // *exposition only*templateusing *iter-to-alloc-type* = pair< add_const_t>>, tuple_element_t<1, *iter-value-type*>>; // *exposition only*templateusing *range-key-type* = remove_const_t::first_type>; // *exposition only*templateusing *range-mapped-type* = typename ranges::range_value_t::second_type; // *exposition only*templateusing *range-to-alloc-type* = pair::first_type>, typename ranges::range_value_t::second_type>; // *exposition only*