Code:
LOSEntry ent = (LOSEntry)iter->second;
You shouldn't need to cast iter->second to LOSEntry, types are not lost when objects are stored in a map.
You should also use a reference here as it avoids a copy, and then use the reference to update the values stored in the object rather than creating a new one and copying it over the existing one.