問題タブ [qlist]
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 と QList を使用したパフォーマンスの向上
私はこれらのクラスを使用しています:
QHash
: シーンのすべてのオブジェクトを表現しています (このクラスは変更できません)
QList
: 選択したすべてのオブジェクトを表示しています。IDが含まれています(として保存されますint
)
たとえば、オブジェクト #77 を選択すると、その ID がHitslist
( QList
) に保存されます。
その後、HitsList
ソートされDrawSelectedObjects()
て呼び出されます。
QHash
untilcounter=77
とを繰り返す必要がありDraw_as_selected()
ます。その後、 の最初の要素QList
が削除され、2 番目の要素が前面に引き出されます。
この関数は、1 つのオブジェクトが選択されるたびに呼び出されます。インポートされた小さなシーンではすべて問題ありませんが、10MB を超えるファイルを使用している場合、出力の遅延が見られます (巨大なQHash
.
これを行うためのより効率的な方法を教えてください。どんな助けでも大歓迎です。
編集:
返信ありがとうございます。問題は、それを取り除くことができないことですQList<int>
(iI は、OpenGL 選択スタックの上に整数のみをプッシュできます)。
したがって、上記の解決策の別の方法は、 のQString.toInt()
すべての要素に対して実行しQHash
、それらを に保存することQList<int>
です。
QString
事実は...どのようにハッシュを使用して正しいハッシュを見つけますint
か?QString
QList
qt - qlist - メモリリークを避ける
タイプ用に作成されたリストT_testStepDetails
:--
T_testStepDetails
:----の個々の要素にメモリを割り当てる
リストに追加:---
空きメモリ:----
したがって、上記の手順でメモリを解放するだけで、メモリ リークを防ぐことができます。?
T_testStepDetails
または、リスト内のタイプの構造ごとに、char*
動的にメモリを割り当てた内部メンバーのメモリを解放する必要があります?
c++ - QList デストラクタの動作 - リスト内のポインタに対して delete/free() を呼び出しますか?
私はclass SomeObjectList : public QList<SomeObject*>
私はポインタを作成SomeObject
し、次のようにリストに貼り付けています:
QList
デストラクタでクラッシュが発生しています。free() が呼び出されている可能性があります。関数のソース コード (Qt 4.8.2) を見つけたところ、次のようになります。
free()
これは、デストラクタが呼び出されたときにリストに残っているポインタで呼び出されていることを意味しますか? この問題なしで他の場所でリストを使用しました。デストラクタはどのような状況で を呼び出しfree()
ますか?
c++ - クラスへのポインタを QList QList に追加する
私の mainwindow.h には、サーボ オブジェクトへのポインタを格納する QList m_qlServoList があります。
新しい Servo ポインターを QList に追加しようとすると、次のようになります。
次のエラーが発生します。
Servo クラスのヘッダーは次のようになります。
ここで私が間違っていることを誰かが説明してくれれば幸いです。また、ポインタを Servo オブジェクトに正しく追加する方法。
c++ - QList は、ポインターまたはアイテム自体を格納するかどうかをどのように決定しますか?
ドキュメントから:
内部的には、QList は T 型の項目へのポインターの配列として表されます。T 自体がポインター型またはポインター以下の基本型である場合、または T が Qt の共有クラスの 1 つである場合、QList は項目を格納します。ポインタ配列に直接。
QList
タイプに応じて、ポインターまたはアイテム自体を保存するかどうかをどのように「決定」するのですか?
彼らはいくつかの難解なテンプレート構文を使用してそれを行いますか?
c++ - Qリストランタイムエラー
QgraphicsScene に次のようなアイテムを格納するための QList があります。
次のように使用したい場合:
実行時エラーが発生しました。私は好奇心が強いですなぜですか?
ちなみに私は linelist.append() について知っています
ありがとう。