The header <map> defines the class templates map and multimap; the header <set> defines the class templates set and multiset.
The following exposition-only alias templates may appear in deduction guides for associative containers:
template<class InputIterator>
using iter_key_t = remove_const_t<
typename iterator_traits<InputIterator>::value_type::first_type>; // exposition only
template<class InputIterator>
using iter_val_t
= typename iterator_traits<InputIterator>::value_type::second_type; // exposition only
template<class InputIterator>
using iter_to_alloc_t
= pair<add_const_t<typename iterator_traits<InputIterator>::value_type::first_type>,
typename iterator_traits<InputIterator>::value_type::second_type>; // exposition only