質問
挿入順序でqhashをループすることは可能ですか?以下の方法は、他の要因によってハッシュをループするようです。
QHashIterator<QString, QString> i(hash);
while (i.hasNext()) {
i.next();
qDebug() << i.key() << ": " << i.value();
}
編集:
Qhashでは不可能だと思いましたが、代わりに何を使用すればよいですか?
解決
から qhash ドキュメンテーション、
Qhashは順序付けられていないので、 イテレーターのシーケンスは予測可能であると想定できません. 。キーによる注文が必要な場合は、aを使用します QMAP
だからそうです ありえない.
キーに基づいて注文したい場合は、使用してください QMap
代わりは..
それが役に立てば幸い..
編集:
もし、あんたが しないでください 必要 Key
と Value
論理マッピングとその価値だけで、あなたは使用できます
QList<QPair<QString,QString>> pairs;
例:
最初の値は、によって取得できます
QString firstValue = pairs.at(0).first;
同様に、QPAIRの2番目の値については、
QString secondValue = pairs.at(0).second;
そして、あなたはを繰り返すことができます QList
挿入された順序で要素を取得します..
他のヒント
QHash
挿入注文を覚えていません。高速ランダムアクセス用に設計されています。イテレーターで得られる順序は任意です。
もし、あんたが それだけ に要素を挿入します(要素の削除なし) QHash
配列/リストを並行して使用できます。それは非常にエレガントな解決策ではありませんが、あなたが望むものを達成することはできません QHash
コンテナのみ。
所属していません StackOverflow