# CPP Map

Maps in CPP are used to store sorted key-value pair. They are the associative containers. Each key in a map is unique. CPP facilitates insertion and deletion of a key in a map but do not allow any modifications, however, values can be modified.

## Member Functions of a CPP map:

### Allocator:

 FUNCTION USES get_allocator To return an allocator object to construct the map.

### Capacity:

 FUNCTION USES empty() To determine whether the map is empty or not. max_size() To determine the maximum size of the map. size() To determine number of elements in the map.

### Constructor/Destructor:

 FUNCTION USES (constructor) To construct a map. (destructor) To destruct a map. operator= To copy the elements of the map to another map.

### Element Access

 FUNCTION USES at To get the element with given key. operator[] To get the element with given key.

### Iterators:

 FUNCTION USES begin() To point to the first element of the map. cbegin() To return a constant iterator to the beginning of the map. cend() To return a constant iterator to the end. crbegin() To return a const reverse iterator to the beginning. crend() To return a const reverse iterator to the end. end() To return an iterator to the end. rbegin() To return a reverse iterator to the beginning. rend() To return a reverse iterator to the end.

### Modifiers:

 FUNCTION USES clear() To remove all the elements of the map. erase() To delete the specified element. emplace() To construct and insert a new element at a specified position. emplace_hint() To construct and insert a new element at a specified position by hint. insert() To insert a new element in the map.. swap() To exchange the contents of two maps.

## Non-Member Overloaded Functions:

 FUNCTION USES operator== To determine whether the two maps are equal or not. operator!= To determine whether the two maps are equal or not. operator<= To determine whether the first map is less than or equal to other or not. operator< To determine whether the first map is less than other or not. operator>= To determine whether the first map is greater than equal to other or not. operator> To determine whether the first map is greater than other or not. swap() To exchange the contents of two maps.

### Observers:

 FUNCTION USES key_comp To return a copy of key comparison object. value_comp To return a copy of value comparison object.

### Operations:

 FUNCTION USES count To get the number of elements matching with given key. equal_range To get the range of elements matches with given key. find To find an element with given key. lower_bound To get an iterator to lower bound. upper_bound To get an iterator to upper bound.

Example:

#include <string.h> #include <iostream> #include <map> #include <utility> using namespace std; int main() { map<int, string> Students;   Students[1] = "Vibhu"; Students[2] = "Yash"; Students[3] = "Abhi"; Students[4] = "Neelam"; cout << "Students[2]=" << Students[2] << "\n\n"; cout << "Map size: " << Students.size() << endl; cout << "\nOrder:" << endl; for( map<int,string>::iterator i=Students.begin(); i!=Students.end(); ++i) { cout << (*i).first << ": " << (*i).second << endl; } cout << "\nReverse Order:" << endl; for( map<int,string>::reverse_iterator i=Students.rbegin(); i!=Students.rend(); ++i) { cout << (*i).first << ": " << (*i).second << endl; } }

Output

Students[2]=Yash   Map size: 4   Order: 1: Vibhu 2: Yash 3: Abhi 4: Neelam   Reverse Order: 4: Neelam 3: Abhi 2: Yash 1: Vibhu