クラスの活用法

グループ毎に同じような処理を行いたい場合があります。同じような処理なのに、各グループ分記述するのは疲れます。その場合次のようにclassをつけて宣言すると同じclass名をつけたグループについて処理を書くことができます。

for (グループ in グループclass){
        for (person in グループ){//グループごとに処理
                vector vA;
                for (day in 第2週){
                        if (person in シフト2はいやだ){//シフト2が嫌な人は
                                vA.push_back(X[person][day][C]);//シフト3
                                print("シフト2はいやだ",グループ,person,day,vA);//文字列を出力したいときは、ダブルクオートで囲む
                        }else {
                                vA.push_back(X[person][day][B]);
                                print(グループ,person,day,vA);
                        }
                }
                $And(vA);//グループ毎に制約
        }
}

グループclass という具合に名前+classでグループ集合の集合という意味になります。つまり、グループclass=[グループA,グループB,グループC]になります。
後は、これをfor ループで呼べば、同じ処理が実現できます。 


グループA,B,Cを下のように定義します。




print文で、変数グループにグループA、B,Cと割り当てられているのが分かります。変数名は、重複がなければ、なんであっても構いません。




前の結果と違うのは、シフト2が嫌いな人は、シフト3にしているところです。


[Prev] [Next] [Index] [Home]