我创建了一个名为MyClass
的类,并将地图定义为:
map<string,myClass> myClassSample;
我插入了一个变量和键:
myClassSample["id"].setString1_1("hi");
注意:setString1_1
是类
然后我使用此代码查看密钥是否可用:
if (myClassSample.find("id") != myClassSample.end())
{
printf("Problem");
}
Problem
显示为输出。所以条件是真的!
但该函数可以返回字符串!
return myClassSample["id"].getString1();
注意:getString1
是类
答案 0 :(得分:3)
您似乎对map::find
的工作方式存在误解。当您搜索的密钥无法找到时,它会返回end()
迭代器。因此,检查密钥是否存在的条件需要
if (myClassSample.find("id") == myClassSample.end())
// ^^ ==, not !=
{
printf("Problem");
}