0
A
答えて
0
無益であるだけでなく、「有害」となる可能性があります。
QList<T>::clear()
は、効果的に所有しているすべてのTを破壊するため、役に立たない。~T()
あなたの場合は、QList内のすべてのベクトルに対して~QVector<QPointF>()
を呼び出すことになります。そして、~QVector<QPointF>()
はすべてのポイントに対して~QPointF()
と呼ぶでしょう。
QListとQVectorがCopy-on-Writeを使用するため、パフォーマンスに悪影響を与える可能性があります。つまり、リストをコピーすると内部データはコピーされませんが、リストの1つを変更するアクションを実行するとすぐにコピーが行われます。
したがって、m_data
がその内部データを別のQListと共有する場合、その要素のいずれかを変更すると(たとえば、そのうちの1つでQVector::clear()
を呼び出して)、QList内部データのハードコピーがトリガーされます。そして、このコピーは、ちょうどm_data.clear()
を呼ぶことによってそれを捨てるので完全に役に立たない。また
ことは注目に値する:
foreach (QVector<QPointF> row, m_data)
row.clear();
はm_data
を変更しません。ローカル変数であるrow
をクリアします。 foreachのは、のために非const 参照を使用して、コンテナのコピーを作成するので
:そして、たとえあなたがエンアップ執筆:
foreach (QVector<QPointF> &row, m_data) row.clear();
をそれはQtのドキュメントを引用し、としては効果がありません変数で元の コンテナを変更することはできません。コピーにのみ影響しますが、これはおそらくあなたが望むものではありません。 。
関連する問題
- 1. 明確な説明[C - 「0」]
- 2. クイックソートのサブクラスQList
- 3. QAbstractListModelとQListアダプタ
- 4. C++継承 - QList
- 5. 2d QListメモリリーク
- 6. QList to QTableWidget
- 7. バッシュ:明確な列
- 8. 明確なnode.jsコールバック
- 9. MDX - 明確な数
- 10. 明確な内容
- 11. Laravel「おっと」エラー:明確なルート:明確な
- 12. シンプルなOpenGLの明確化
- 13. カウント明確な重複
- 14. モジョ:: UserAgentの明確なセッションデータ
- 15. SPARQLクエリと明確な数
- 16. C#の明確なテキストボックス
- 17. MongoDBの明確な集約
- 18. CSS明確な理解
- 19. Djangoのsort_byと明確な
- 20. 削除ID()。明確な
- 21. GridViewの明確な選択
- 22. 明確なヒーブ結合
- 23. 明確なチェックボックスとメニュー
- 24. Arduinoの明確なバッファ
- 25. ScrollableViewの明確なビュー
- 26. ブーストMSM - 明確に
- 27. React js - タイマーに必要な明確化
- 28. シリアライゼーションQList <MyObject> to JSON
- 29. 明確な方法でライブラリを明示的にロードする
- 30. qhash-とQListに初期化>キーが