例如:
<1,2,3> 作为函数 comb 的输入以获得 2 个元素的组合将输出结果 <<1,2>,<1,3>,<2,3>>,作为同一函数的输入将得到 <<<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)));
但是编译器一直抱怨无法推断出返回值的类型。
谢谢。