нужна постоянная си строка на основе string (ссылаться на нее откудато), первое что пришло в голово:
string sss("test");
map<string, const char*> x;
x.insert(pair<string, const char*>(sss, sss.c_str()));
///где то в глубине
const map<string, const char*>::const_iterator mmm = x.find(sss);
if ( mmm!= x.end())
cout << mmm->second << std::endl;
безопасно?