Например:Как написать обобщенную функцию для вычисления рекурсивной комбинации
< 1,2,3> в качестве входного сигнала к функции гребню, чтобы получить комбинацию из 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)));
Но компилятора Keep жалуется не может вывести тип возвращающего значения, в.
Спасибо.
Вы должны написать точный код (по крайней мере, подпись шаблона) и точный код ошибки. –
@ DavidRodríguez-dribeas Извините, код уже испорчен, чтобы выполнить мою работу, я уже заменяю этот код в своем проекте на несколько быстрых грязных функций гребня. – YourBestBet
На самом деле вам понадобится пробел между двумя '' 'внутри шаблона для объявления шаблона. есть разница между '>>' и '>>'. Интересно, почему ваш компилятор не жалуется. – xQuare