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
されます3
か、それとも segfault につながるか、未定義になります (そのため、サイズ変更など、データ構造を内部的に再編成する必要があるかどうかに応じて、時々機能し、segfault が別の場合に機能します)ハッシュテーブル配列の)。QMap
との動作は同じQHash
ですか、または一方が機能し、もう一方が機能しませんか?