ordered map code example

Example 1: map vs unordered_map in C++

| map             | unordered_map
---------------------------------------------------------
Ordering        | increasing  order   | no ordering
                | (by default)        |

Implementation  | Self balancing BST  | Hash Table
                | like Red-Black Tree |  

search time     | log(n)              | O(1) -> Average 
                |                     | O(n) -> Worst Case

Insertion time  | log(n) + Rebalance  | Same as search
                      
Deletion time   | log(n) + Rebalance  | Same as search


::-> Use std::map when
1. You need ordered data.
2. You would have to print/access the data (in sorted order).
3. You need predecessor/successor of elements.
  
::-> Use std::unordered_map when
1. You need to keep count of some data (Example – strings) and no ordering is required.
2. You need single element access i.e. no traversal.

Example 2: map c++

#include <iostream>
#include <string>
#include <map>

using std::string;
using std::map;

int main() {
	// A new map
  	map<string, int> myMap = { // This equals sign is optional
		{"one", 1},
    	{"two", 2},
    	{"three", 3}
  	};

  	// Print map contents with a range-based for loop
    // (works in C++11 or higher)
  	for (auto& iter: myMap) {
    	std::cout << iter.first << ": " << iter.second << std::endl;  
  	}
}

Tags:

Cpp Example