attendu que j'ai une classe qui contient un objet QMap:QMap :: contains() ne retourne pas la valeur
QMap<QString, Connection*> users;
Maintenant, dans la fonction suivante Foo(), la clause if retourne toujours faux, mais quand j'itérer A travers la carte, la chaîne QString comparée, c'est-à-dire, str1 est présente dans les clés.
void Foo(QString& str1, QString& str2)
{
if(users.contains(str1))
users[str1]->doStuff(str2);
else
{
for(QMap<QString, Connection>::iterator iter = users.begin();
iter!= users.end();iter++)
qDebug()<<iter.key();
}
}
Est-ce que je fais quelque chose de mal? Pourquoi contains() ne renvoie pas true?
Y a-t-il une faute de frappe dans votre question? Vous dites que 'str2' est présent dans les clés, mais vous vérifiez si' users' contient 'str1'. –
J'ai effectué la modification requise. –