From: http://www.cplusplus.com/reference/map/map/insert/
Because element keys in a map are unique, the insertion operation checks whether each inserted element has a key equivalent to the one of an element already in the container, and if so, the element is not inserted, returning an iterator to this existing element (if the function returns a value).
map[NAME] = VALUE will always insert or overwrite.
map.insert(make_pair(NAME,VALUE)) will only insert and not overwrite.