【发布时间】:2011-05-19 10:54:34
【问题描述】:
我在我的 hashmap 中插入了一对 (key,value),但在尝试打印时它似乎没有值
问题是我不知道为什么我不能在下面的代码中打印第二个元素。
让我们看一些代码:
.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;
}
name="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;
这不起作用。我现在可能很困惑!
【问题讨论】: