【发布时间】:2013-06-06 22:18:32
【问题描述】:
我有以下代码,我想在 QMap 中找到与等于“tagName”的键关联的值。 一旦我将迭代器定位在正确的位置,我想获取这个值(应该是 QStrings 的 QVector),看看我是否能在其中找到我想要的。
但是每当我尝试执行 p.value() 时,我的程序就会崩溃。 我检查了我的调试器,奇怪的是 p 的键和值在调试面板中显示为“不可访问”...
QMap<QString, QVector<QString> >::iterator p = associations.find(tagName);
int index = p.value().indexOf(noteName);
return (index != -1);
任何帮助或提示将不胜感激!
【问题讨论】:
-
您应该首先检查迭代器是否有效,即您是否在地图中找到了东西。
-
if ( p == associations.end() ) return;. -
永远,永远,永远写
if (bool_expr) return true; else return false;。它与return bool_expr;相同,只是更长。 -
@MarceloCantos 是的,对不起,我很累,否则我会注意到的,现在很惭愧!
-
@Selphira:别出汗。阅读六个月前写的代码时,我偶尔会抓狂。