キーとして「仕事」を格納し、値として「名前」を格納するマップがあります。マップ内でのfind()の繰り返しと使用C++
map<string, string>dutyAndJob;
map<string,string>::iterator it;
私は基本的に、このマップを特定の「名前」で調べようとしています。 名前がない場合、それはこのループに入るべきではない、しかし、いくつかの未知の理由で、それは常に、このループに入る:
string name = "Bob";
it = dutyAndJob.find(name);
if (it == dutyAndJob.end())
{
cout << "Testing : " << name << endl;
}
いくつかの理由が、それはまだそこでもかかわらず、このループを入力します。マップに格納されているボブではありません。
ご協力いただければ幸いです!
このコードは、 "Bob"が実際にマップに格納されていなくても "Testing:Bob"を表示します。 – user432584920684
'if'文はループではありません。 – ildjarn
findメンバー関数は**キー**を見つけるためのものです。あなたは "名前"は**値**と言います。 Findはそれを見つけることができません。各項目の値を見て、それが "Bob"かどうかを調べる必要があります。 – UncleBens