複数のオブジェクトと生成とその組み合わせ
外部からの入力で複数のオブジェクトを生成し、それらの可能な組み合わせをつくる方法でつまずいています。
例えば
class mochimono
{
public:
string name;
int weight
int maximum_number;
};
というクラスを設定します。生成されるオブジェクトには名前と重さのほか”最大何個まで持ちうるか(設定できるか)”というパラメータがあります。
たとえば最大2つまでもてるのApple、最大1つまで持てるBananaという2つのオブジェクトをつくると
name:Apple
weight:2
maximum_number:2
name:Banana
weight:3
maximum_number:1
ありうる組み合わせは
Apple x 0, Banana x 0
Apple x 0, Banana x 1
Apple x 1, Banana x 0
Apple x 1, Banana x 1
Apple x 2, Banana x 0
Apple x 2, Banana x 1
となります。
この組み合わせを、例えば最後の組み合わせであれば”Apple, Apple, Banana"というオブジェクトのベクター”としてつくり、全体を”オブジェクトのベクターのベクター”として管理し、その後別の処理を行いたいと思っています。
ですが、オブジェクトが複数種類作られることを想定してこの組み合わせを”オブジェクトのベクターのベクター”として実現するアルゴリズムが作成できずに困っています。
アルゴリズム自体が思いつかず、抽象的で分かりずらいかもしれませんが、解決策があればよろしくお願いします。
補足
回答ありがとうございます これってランナバウト3の攻略サイトに載ってたやつですよね ぼくも見たことがあるのですがイマイチ説明文がわかりづらくて 目的の場所がみつからないんです。 もっと詳しく書いてあるサイトがあったら教えて欲しいです。