- 7 名前:デフォルトの名無しさん mailto:sage [2016/01/24(日) 11:39:36.09 ID:LHp2Xjej.net]
- AやB、C1、C2、C3がどういう意味を持つのか分からんとアドバイスは難しいかな。
もしかしたら全て同じクラスで表現して、有向グラフとして構成するのが一番かも知れん。 > クラスの異層間および同層間の参照がある ノード間に自明な階層構造があるなら、親への弱いポインタとノードの参照パラメタのタプルを持てばいいんじゃない? class A { friend B; vector<shared_ptr<B>> b; }; class B { weak_ptr<A> a; size_t B_index; }; // this == a.lock()->b[B_index].get(); > B内のvectorを要素の状態に応じてソートする これはstd::sortで行ける。 尤も、ベクタが常にソートされた状態に保たれるって条件にしたいなら挿入ソートの方が計算量が少なくなって良いけどね。 ex) sort(c1.begin(), c1.end(), [](const shared_ptr<C1>& e1, const shared_ptr<C1>& e2) { return compare(e1->get_parameter(), e2->get_parameter()); } );
|

|