it is a pointer to the memory location where the value actually resides. If you only want to do a replace operation, you can always do *it=newValue which basically translates to "replaces whatever is at the memory location pointed by it with newValue".