例えば:
<1,2,3> を関数 comb への入力として 2 つの要素の組み合わせを取得すると、結果 <<1,2>,<1,3>,<2,3>> が出力され、同じ関数への入力としてget <<<1,2>,<1,3>>,<<1,3>,<2,3>>,<<1,2>,<2,3>> を同じ関数は .... を取得します。
ロジックは同じで、型が変わるだけなので、ジェネリックにすることができます。私はこのようなものを書いてみました:
template<typename V>
vector<vector<vector<V>::const_iterator>> comb(const vector<V>){
....
while(next_combination(...))
vector<vector<vector<V>::const_iterator>> results;
return results;
}
vector<string> input
comb(comb(comb(input)));
しかし、コンパイラは戻り値の型を推測できないと不平を言い続けます。
ありがとう。