5

これは理論的な例ですが、うまくいけば私の質問が強調されます。

Itemオブジェクトのマスター リストがあり、 には と というItem2 つのプロパティがあるとWeightValueます。

プログラムは、他の場所でソートされて最も高価なものを取得している間に、ソートしWeightて最も軽いものを取得することが非常に頻繁に必要になります。ItemValueItem

マスター リストは非常に大きくなる可能性があるため、マスター リストを何度もソートし続けるのは多くの不要な作業になります。時間を節約するために、ソートされた結果を独自のリストとして保存することは可能ですか? これらの他のリストは、実際のオブジェクトへのポインターを単に保存し、それらを再度保存するだけではありませんか?

4

3 に答える 3

7

これは が か かによってItem異なりstructますclass。それが a の場合class(賢明なデフォルトと同様)、両方のWeightリストにはオブジェクトへの参照のみが含まれます - すべての/Value値の重複はありません。の場合struct、すべての値複製されます。それぞれに個別のバッキング ベクターがあり、実際の構造体がベクター内にあるためです。補足: 値が文字列の場合、文字列参照型であるため、文字列の内容は複製されないことに注意してください(疑似インターンなどを使用せずに個別に作成された場合を除く)。

于 2013-08-22T10:56:53.123 に答える
3

これらの他のリストは単に保存されますかポインタそれらを再び保存するだけでなく、実際のオブジェクトへの参照?

構造体ではなくクラスである限りItem: はい。

于 2013-08-22T10:56:24.040 に答える
0

ここで読むことができるように、クラスは参照型です。つまり、新しいリストにコピーされません。

実際、2 つのリストを保持し、それらを 1 つずつ並べ替えておくことができるpriceのでWeight、生活が楽になります。

于 2013-08-22T11:00:31.713 に答える