問題タブ [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.

0 投票する
2 に答える
445 参照

c++ - 異種の値の型を持つ QHash をどのように定義しますか?

QHashキーを受け取るが、値として異種の型を受け取るコンテナーが必要quint8です。これらはすべて Qt コンテナーまたはクラスになります。QDate例として、またはQTimeオブジェクトを値として挿入したいquint8場合があります。

このような型を定義して、他のクラスで使用し、実行時に適切に入力するにはどうすればよいでしょうか? グローバル型としてアクセスできるようにしたい。出来ますか?

NB の質問は、OP の意図をよりよく反映するように編集されています。編集前に書かれた回答は、元の質問に適しています。

0 投票する
2 に答える
2207 参照

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?

0 投票する
1 に答える
330 参照

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

この問題を解決するのを手伝ってくれませんか?

これが私のアイデアを実現するためのテストコードです。

0 投票する
1 に答える
867 参照

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);

この行を次のように変更しても、まだエラーが発生します

問題を見つけるのを手伝ってくれませんか?

0 投票する
1 に答える
748 参照

c++ - C++ で QStringList を使用して QHash を構築する

C++ では、次のような特殊な QHash を構築しようとしています。

このタイプのデータを保存できるように:

ハッシュを適切に構築するための C++ 構文と、ハッシュ値を取得する方法に問題があります。たとえば、B を指定すると、I はループして 5,6 を返します。

これは、新しいキーと値のペアが追加されるときにハッシュに追加するロジックでのハッキングされた試みです。

myhash の取得ループ ロジックを作成できていないため、これが機能するかどうかはわかりません。

このような QHash からデータを作成して取得するのを手伝ってくれる人はいますか?

0 投票する
2 に答える
1001 参照

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 開発者が単に見落としたものではありません。特別なヘッダーを含める必要がありますか? これが存在しない理由は何ですか?

0 投票する
1 に答える
464 参照

c++ - C++ の QHashIterator

C++ でゲームを開発しましたが、すべてが適切に行われていることを確認したいと考えています。QHashIterator を使用して、リスト内のどの項目の値が最も低いかを確認するのは良い解決策ですか (パスファインディングの F コスト)。

私のコードからのスニペット:

いいえ?より良い改善はありますか?

また、std::priority_queue についても発見しました。これは QHashIterator よりもはるかに優れていますか?

大きくないゲームワールドでは問題ないかもしれません。しかし、ゲームの世界が大きい場合 (+ 10000 計算など) に適したソリューションを探しています。何かマークはありますか?

0 投票する
1 に答える
252 参照

qt - QPixmap* を常に生成すると、何度か繰り返した後に失敗します

QPixmap*ポインターを生成してから挿入するために、次のコードを使用していますQHash<QString, QPixmap*>(これは失敗するため、ポインター生成コードのみを示します)。

私が抱えている問題は次のとおりです。最初の約200回の呼び出しでは、メソッドは正常に機能します-ディレクトリの画像ファイルを反復処理するループで呼び出されています。その後、明らかな理由もなく、突然QPixmap*戻ってきます。その場合も null です。パスに問題がないことを確認しました。また、さまざまな画像のセットを試してみましたが、常に同じことが起こります.〜200回の呼び出しで問題なく実行され、ヌルの生成が開始されます.QPixmap(null)QImage

どんな助けでも大歓迎です。

ありがとうございました。

0 投票する
3 に答える
351 参照

c++ - 独自のクラスで QHash をシリアル化しますか?

私は を持っていますがQHash<const QString id, MyClass>、MyClass は getter と setter を持ついくつかの QString quint8 値の単なるコレクションです。MyClass にもQDataStream &operator<<(QDataStream &ds, const MyClass &obj)上書きがあります。

シリアル化するには、次を使用します。

今、私は他のものと混同しています:

そのシリアル化された QHash の長さを知っていますか?