トップページ > プログラム > 2016年01月24日 > 0LR1dPfv

書き込み順位&時間帯一覧

29 位/167 ID中時間01234567891011121314151617181920212223Total
書き込み数0010000000000000100000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
5
C++相談室 part122 [無断転載禁止]©2ch.net

書き込みレス一覧

C++相談室 part122 [無断転載禁止]©2ch.net
5 :デフォルトの名無しさん[sage]:2016/01/24(日) 02:28:04.57 ID:0LR1dPfv
前スレ>>935でスマポ関連の質問をした者ですが、すみませんがもう一度質問させてください。
今の糞コードはこんな感じです。

class A {
 vector<shared_ptr<B>>; // 要素は数十個
};
class B {
 vector<shared_ptr<C1>>; // 要素は数万個、要素内の状態に応じてソート
 vector<shared_ptr<C2>>; // 同上
 vector<shared_ptr<C3>>; // 同上
 weak_ptr<A>;
};
class C1 {
 weak_ptr<A>;
 weak_ptr<B>;
};
class C2 {
 vector<weak_ptr<C1>>; // 要素は数十個
 weak_ptr<A>;
 weak_ptr<B>;
};
class C3 {
 vector<weak_ptr<C2>>; // 要素は数十個
 weak_ptr<A>;
 weak_ptr<B>;
};

クラスの階層としては A→B→C1,C2,C3 ですが、以下を満たした上での適切なクラス設計が分かりません。
・クラスの異層間および同層間の参照がある
・B内のvectorを要素の状態に応じてソートする

これらのスマポやコンテナをどう変えるのが適切なんでしょうか?
C++相談室 part122 [無断転載禁止]©2ch.net
13 :5[sage]:2016/01/24(日) 16:51:59.34 ID:0LR1dPfv
>>6
>最初に結合考えられてない状態で全部オブジェクトが作られてそのあとつながっていくパターンなのか、
最初は何も考えずそうしていました。つまり、全てのオブジェクトをshared_ptrで作っていました。
ただ、前スレの指摘からshared_ptrを意味もなく使うのは駄目だと悟ったので、
ノード間に自明な親子関係があることから、素直に「親が子を作る」ほうがいいかと思いました。

>>7
書き忘れましたが、全てのクラスはインデックスを表すメンバ int index を持っており
これに従ってvectorをソートしたいのでした。
こういう場合shared_ptrやweak_ptrを使うのは悪くないということでしょうか?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。