このアルゴリズム/アプローチの実装として、次の関数を作成して、特定の文字列のパワーセット (すべてのサブセットのセット) を生成しました。
vector<string> getAllSubsets(string a, vector<string> allSubsets)
{
if(a.length() == 1)
{
// Base case,
allSubsets.push_back("");
allSubsets.push_back(a);
}
else {
vector<string> temp = getAllSubsets(a.substr(0,a.length()-1),allSubsets);
vector<string> with_n = temp;
vector<string> without_n = temp;
for(int i = 0;i < temp.size()-1;i++)
{
allSubsets.push_back(with_n[i] + a[a.length()-1]);
allSubsets.push_back(without_n[i]);
}
}
return allSubsets;
}
ただし、誰かが間違っているようです。呼び出しのためにサイズが増加する必要がある場合、再帰呼び出しから再帰呼び出しまでのサイズtempと静的なままです。これが起こる理由はありますか?allSubsetspush_back()