Я вставляю пару (ключ, значение) в мою хэш-карту, но, кажется, у нее нет значения при попытке ее распечатать
Дело в том, что я не знаю, почему я не могунапечатать второй элемент в следующем коде.
Давайте посмотрим код:
.h
typedef hash_map<const string, string, strptrhash, strptrequal> StringHashMap;
StringHashMap m_memberNameMap;
typedef pair <const string,string> string_pair;
.cpp
void Powerdomain::addMemberName(const string& name){
if (m_memberNameMap[name]==""){
m_memberNameMap.insert(string_pair(name,name));
StringHashMap::iterator it = m_memberNameMap.begin();
cout << it->first << endl;
cout << it->second << endl;
cout << m_memberNameMap["MD1"] << endl;
}
с именем= "MD1" это выводит:
MD1
*blank*
*blank*
РЕДАКТИРОВАТЬ
относительно ответа Алана:
ModuleType * moduletype4=new ModuleType("type4");
ModuleType * value = moduleTypeMap["type4"];
if (value==NULL) {
ModuleType& value2=*moduleTypeMap["type4"];
value2=*moduletype4;
cout << "correctly inserted" << endl;
}
cout << moduleTypeMap["type4"]->getName() << endl;
Это не работает.Я мог бы быть смущен сейчас!