don't use '[]'  for arbitrary keys.
from http://www.cplusplus.com/reference/map/map/operator%5B%5D/
"if k does not match the key of any element in the container, the function inserts a new element with that key and returns a reference to its mapped value. Notice that this always increases the container size by one, even if no mapped value is assigned to the element"