ベクタのベクタを作ったらなんだかpush_backが多くて見にくいなと思ってたら stringの二次元配列を作ってる解答があったので見習う。
あと、ベクタのベクタを作る場合にダイヤモンドの間にスペースを入れないとコンパイルエラーになる理由がよくわからん。
using namespace std;
class Matching {
public:
vector <string> findMatch(vector <string> first, vector <string> second) {
vector <string> cards, colors, shadings, numbers, ret;
cards.push_back("CIRCLE"); cards.push_back("SQUIGGLE"); cards.push_back("DIAMOND");
colors.push_back("RED"); colors.push_back("BLUE"); colors.push_back("GREEN");
shadings.push_back("SOLID"); shadings.push_back("STRIPED"); shadings.push_back("EMPTY");
numbers.push_back("ONE"); numbers.push_back("TWO"); numbers.push_back("THREE");
vector < vector<string> > data;
data.push_back(cards);
data.push_back(colors);
data.push_back(shadings);
data.push_back(numbers);
for(int i=0;i<first.size();i++){
if(first[i] == second[i]){
ret.push_back(first[i]);
}else {
for(int j=0;j<data[i].size();j++){
if(data[i][j] != first[i] && data[i][j] != second[i]) ret.push_back(data[i][j]);
}
}
}
return ret;
}