Как сказала Dewfy, на примере вы дали, это не имеет значения, так как ИНТ встроенного типа и он будет скопирован по значению, но с гольца * это немного отличается ...
Если у вас
std::map<char *, int> map;
Тогда вы не можете вставить переменную, объявленную как константу полукокса * подведет
char * y = new char[4];
const char * x = "asdf";
std::map<char *, int> map;
map.insert(make_pair(y, 4)); //ok
map.insert(make_pair(x, 4)); //fail
с
std::map<char*, int> map;
вы можете сказать
char * x = new char[1];
(*x) = 'a';
map<char*,int>::iterator it = map.begin();
cout<<it->first; //prints 'a'
(it->first)[0] = 'x'
cout<<it->first; //prints 'x'
с
std::map<const char *, int>
вы будете ограничены в использовании
map<const char*, int>::iterator
Первый ответ, который фактически отвечает на вопрос. –