我想知道对 Qt 容器内的值的引用,尤其是 aQHash
或 a的引用QMap
有效时间。有效是指在插入或删除其他元素后,是否保证仍指向地图/哈希内的正确位置。
让我们下面的代码:
QHash<char,int> dict; // or QMap<char,int> dict;
dict.insert('a', 1);
int& val(dict['a']);
dict.insert('b', 2);
val = 3; // < will this work or lead to a segfault
将在最后一行设置值正确更新与a
to关联的值3
还是会导致段错误或未定义(所以有时工作,段错误其他时候,取决于数据结构是否必须在内部重新组织,例如调整大小的哈希表数组)。QMap
and的行为是否相同QHash
,或者一个有效而另一个无效?