std::map
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <map> | ||
| template<     class Key, | ||
std::map is a sorted associative container that contains key-value pairs with unique keys. Keys are sorted by using the comparison function Compare.  Search, removal, and insertion operations have logarithmic complexity. Maps are usually implemented as red-black trees.
std::map meets the requirements of Container, AllocatorAwareContainer, AssociativeContainer and ReversibleContainer.
| Contents | 
[edit] Member types
| Member type | Definition | 
| key_type | Key | 
| mapped_type | T | 
| value_type | std::pair<const Key, T> | 
| size_type | Unsigned integral type (usually size_t) | 
| difference_type | Signed integer type (usually ptrdiff_t) | 
| key_compare | Compare | 
| allocator_type | Allocator | 
| reference | Allocator::reference(until C++11)value_type&(since C++11) | 
| const_reference | Allocator::const_reference(until C++11)const value_type&(since C++11) | 
| pointer | Allocator::pointer(until C++11)std::allocator_traits<Allocator>::pointer (since C++11) | 
| const_pointer | Allocator::const_pointer (until C++11) std::allocator_traits<Allocator>::const_pointer (since C++11) | 
| iterator | BidirectionalIterator | 
| const_iterator | Constant bidirectional iterator | 
| reverse_iterator | std::reverse_iterator<iterator> | 
| const_reverse_iterator | std::reverse_iterator<const_iterator> | 
[edit] Member classes
| compares objects of type value_type(class) | |
[edit] Member functions
| constructs the map(public member function) | |
| destructs the map(public member function) | |
| assigns values to the container (public member function) | |
| returns the associated allocator (public member function) | |
| Element access | |
| (C++11) | access specified element with bounds checking (public member function) | 
| access specified element (public member function) | |
| Iterators | |
| returns an iterator to the beginning (public member function) | |
| returns an iterator to the end (public member function) | |
| returns a reverse iterator to the beginning (public member function) | |
| returns a reverse iterator to the end (public member function) | |
| Capacity | |
| checks whether the container is empty (public member function) | |
| returns the number of elements (public member function) | |
| returns the maximum possible number of elements (public member function) | |
| Modifiers | |
| clears the contents (public member function) | |
| inserts elements (public member function) | |
| (C++11) | constructs element in-place (public member function) | 
| (C++11) | constructs elements in-place using a hint (public member function) | 
| erases elements (public member function) | |
| swaps the contents (public member function) | |
| Lookup | |
| returns the number of elements matching specific key (public member function) | |
| finds element with specific key (public member function) | |
| returns range of elements matching a specific key (public member function) | |
| returns an iterator to the first element not less than the given value (public member function) | |
| returns an iterator to the first element greater than a certain value (public member function) | |
| Observers | |
| returns the function that compares keys (public member function) | |
| returns the function that compares keys in objects of type value_type (public member function) | |
[edit] Non-member functions
| lexicographically compares the values in the map (function template) | |
| specializes the std::swap algorithm (function template) | |