ツリーノードが構造体またはクラスでなければならない時期を決定する基準は何ですか?ツリー構造はいつクラス/構造体になるべきですか?
2
A
答えて
0
通常、構造体は軽量であり、値型と見なされます。クラスは参照型です。
もこのポストを考えてみましょう:Which is best for data store Struct/Classes?
1
を使用すると、オリジナルの
のコピーとして渡されます、あなたは、多くを必要とする構造体に参照としてノードを渡すことはできませんがbecuase私はクラスのために行くだろうノードでの手動操作のため、参照として渡すとパフォーマンスが向上することがあります。
あなたのノードにたくさんのデータを格納している場合、構造体は選択肢にはなりません。
シナリオに完全に依存する、より高速な値または参照型が指摘されていません。
+0
私も定期的に授業を受けます。私はめったに構造体を使用しません。しかし、単に個人的な好みです。 –
0
木を変更しているときに、同じ "データ"に対して少なくとも2つのポインタ/参照が必要です。これは明示的にボックス化(オブジェクトに変換)しない限り、構造体ではできません。
関連する問題
- 1. 私は、単純な構造体持っている構造体
- 2. 構造体のベクトルがmmapになっている構造体
- 3. ツリー構造としてのmy div構造体のスタイル
- 4. 構造体のベクトルを持つ構造体のベクトルのベクトルを構築できますか? (はい、実際に)
- 5. C#では、いつ構造体を使うべきですか?クラスはいつ使うべきですか?
- 6. C構造体内の構造体内部の構造体
- 7. MSVC++クラス構造体にキャスト
- 8. 構造体またはポインタの構造体ですか?
- 9. Pythonツリー構造
- 10. ツリー構造アルゴリズム
- 11. ツリー構造
- 12. ツリー構造は、どのように私は、ツリー構造を持っている
- 13. エリクサー:構造体にアクセスできない
- 14. メモリアクセス違反ツリー構造内に構造体を挿入するC++
- 15. C++の構造体内の構造体
- 16. 構造体変数と構造体メンバ
- 17. sizeof構造体内構造体
- 18. 構造体内の構造体
- 19. 構造体の配列 - 構造体?
- 20. 構造体内に `initializer_list` ctorを持つ構造体はありますか?
- 21. TreeVar構造体をツリー順序で構築する方法
- 22. C#クラスと構造体
- 23. のemacs:クラスと構造体
- 24. は、構造体
- 25. 構造体は
- 26. C++構造体のポインタを持つ構造体を初期化するには、
- 27. 別の構造体から新しい構造体または既存の構造体にコピー
- 28. これは私の構造体である構造体のコンストラクタ
- 29. 構造体に
- 30. はなぜ構造体を作成した構造体宣言
「軽量」という用語は、この文脈では少し誤解を招くことがあります。構造体は渡されたときに常にコピーされるので、より大きな構造体はかなりヘビーなものになる可能性があります。 .NETでは、P/Invokeをやっていないか、まれにカスタム値型が必要な場合を除き、ほとんどの場合、クラスを使用したいと考えています。 –
私のコメントをsaurabhに見てください。 –