0

「tagName」に等しいキーに関連付けられた値をQMapで見つけたい次のコードがあります。イテレータを適切な場所に配置したら、この値 (QStrings の QVector である必要があります) をフェッチして、その中に必要なものが見つかるかどうかを確認します。

しかし、p.value() を実行しようとすると、プログラムがクラッシュします。デバッガーをチェックしましたが、奇妙なことは、デバッグ パネルで p のキーと値が「アクセス不可」と表示されていることです...

QMap<QString, QVector<QString> >::iterator p = associations.find(tagName);

int index = p.value().indexOf(noteName);

return (index != -1);

ヘルプやヒントをいただければ幸いです。

4

1 に答える 1

1

逆参照する前に、イテレータが有効かどうか、つまり、マップ内に何かが見つかったかどうかを確認します。

return p != associations.end() && p.value().indexOf(noteName) != -1;
于 2013-06-06T22:22:15.787 に答える