【发布时间】:2012-08-17 21:58:42
【问题描述】:
例如:
作为函数comb 的输入,得到2 个元素的组合将输出结果,,>,作为输入将获得相同的功能 ,>,,>,,>,作为同一个函数的输入会得到 ....
逻辑是一样的,只是类型改变,所以可以通用。 我试着写这样的东西:
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)));
但是编译器一直抱怨无法推断出返回值的类型。
谢谢。
【问题讨论】:
-
您应该发布准确的代码(至少是模板的签名)和准确的错误代码。
-
@DavidRodríguez-dribeas 抱歉,代码已经搞砸了,为了完成我的工作,我已经将项目中的这些代码替换为几个快速脏梳功能。
-
实际上,模板声明中的两个
>之间应该需要一个空格。>>和> >之间有区别。我想知道为什么你的编译器不抱怨。 -
投票结束,没有真实代码和编译器错误是不可能回答的,另外看来你不再需要(您可能想自己关闭问题)
-
@Papergay:如果使用C++11编译器,会处理得当。
标签: c++ generics recursion combinations