問題タブ [qhash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 異種の値の型を持つ QHash をどのように定義しますか?
QHash
キーを受け取るが、値として異種の型を受け取るコンテナーが必要quint8
です。これらはすべて Qt コンテナーまたはクラスになります。QDate
例として、またはQTime
オブジェクトを値として挿入したいquint8
場合があります。
このような型を定義して、他のクラスで使用し、実行時に適切に入力するにはどうすればよいでしょうか? グローバル型としてアクセスできるようにしたい。出来ますか?
NB の質問は、OP の意図をよりよく反映するように編集されています。編集前に書かれた回答は、元の質問に適しています。
c++ - Remove range of elements from QHash
I use QHash as a container and I have a task to remove all items that satisfy the predicate. At first I thought to use the Erase-remove idiom it turned out that QHash has no option to delete the range, but only a function to delete a single element through the iterator.
std::unordered_map (which is conceptually close to the Qt's QHash) has the function of removing the range.
This implies a question: why QHash does not have a similar function and how to the best way remove items from the QHash satisfying the predicate?
c++ - Qfile を Qhash に保存する方法
データを多くの異なるファイルにランダムに書き込みたいので、QFile * を Qhash に保存しますが、うまくいきません。と報告があります
QObject::connect: No such signal QObject::aboutToClose() in ....\include\QtCore\5.3.2\QtCore/private/../../../../../src/corelib /io/qtextstream_p.h:75
この問題を解決するのを手伝ってくれませんか?
これが私のアイデアを実現するためのテストコードです。
c++ - Qhash の Qhash がエラーを報告
以下に示すように、qhash の qhash を使用して関数を作成しました。
ただし、次の行にエラーがあります。
エラーは次のとおりです。
エラー: 'const QHash' を 'QHash::iterator QHash::insert(const Key&, const T&) [with Key = int;] の 'this' 引数として渡す T = int]' は修飾子を破棄します [-fpermissive] MotifByCell2seq->value(motif).value(cell).insert(si,1);
この行を次のように変更しても、まだエラーが発生します
問題を見つけるのを手伝ってくれませんか?
c++ - C++ で QStringList を使用して QHash を構築する
C++ では、次のような特殊な QHash を構築しようとしています。
このタイプのデータを保存できるように:
ハッシュを適切に構築するための C++ 構文と、ハッシュ値を取得する方法に問題があります。たとえば、B を指定すると、I はループして 5,6 を返します。
これは、新しいキーと値のペアが追加されるときにハッシュに追加するロジックでのハッキングされた試みです。
myhash の取得ループ ロジックを作成できていないため、これが機能するかどうかはわかりません。
このような QHash からデータを作成して取得するのを手伝ってくれる人はいますか?
c++ - Qt の qHash() に std::shared_ptr のオーバーロードがないのはなぜですか?
驚いたことに、次のコードは Qt 5.4 を使用して C++14 ですぐにコンパイルできないことがわかりました。
問題は、私が見る限り、
のqHash()
メソッドやその他のスマート ポインターのオーバーロードがないことです: http://doc.qt.io/qt-5/qhash.html#related-non-membersstd::shared_ptr
次のオーバーロード(または同様のもの)を持つことは私には自然に思えます:
しかし、それは存在しません。これは、Qt 開発者が単に見落としたものではありません。特別なヘッダーを含める必要がありますか? これが存在しない理由は何ですか?
c++ - C++ の QHashIterator
C++ でゲームを開発しましたが、すべてが適切に行われていることを確認したいと考えています。QHashIterator を使用して、リスト内のどの項目の値が最も低いかを確認するのは良い解決策ですか (パスファインディングの F コスト)。
私のコードからのスニペット:
いいえ?より良い改善はありますか?
また、std::priority_queue についても発見しました。これは QHashIterator よりもはるかに優れていますか?
大きくないゲームワールドでは問題ないかもしれません。しかし、ゲームの世界が大きい場合 (+ 10000 計算など) に適したソリューションを探しています。何かマークはありますか?
qt - QPixmap* を常に生成すると、何度か繰り返した後に失敗します
QPixmap*
ポインターを生成してから挿入するために、次のコードを使用していますQHash<QString, QPixmap*>
(これは失敗するため、ポインター生成コードのみを示します)。
私が抱えている問題は次のとおりです。最初の約200回の呼び出しでは、メソッドは正常に機能します-ディレクトリの画像ファイルを反復処理するループで呼び出されています。その後、明らかな理由もなく、突然QPixmap*
戻ってきます。その場合も null です。パスに問題がないことを確認しました。また、さまざまな画像のセットを試してみましたが、常に同じことが起こります.〜200回の呼び出しで問題なく実行され、ヌルの生成が開始されます.QPixmap(null)
QImage
どんな助けでも大歓迎です。
ありがとうございました。
c++ - 独自のクラスで QHash をシリアル化しますか?
私は を持っていますがQHash<const QString id, MyClass>
、MyClass は getter と setter を持ついくつかの QString quint8 値の単なるコレクションです。MyClass にもQDataStream &operator<<(QDataStream &ds, const MyClass &obj)
上書きがあります。
シリアル化するには、次を使用します。
今、私は他のものと混同しています:
そのシリアル化された QHash の長さを知っていますか?