我是新來的,所以我可能會錯過一些東西。我現在有這些代碼:如何在這個遞歸中實現向量?
#include <iostream>
template<int ...> struct mySum;
template<>struct
mySum<> {
static const int value = 0;
};
template<int i, int ... tail> struct
mySum<i, tail...> {
static const int value = i + mySum<tail...>::value;
};
int sum = mySum<1, 2, 3, 4, 5, 6, 7, 8>::value;
int main() {
std::cout << sum << std::endl;
return 0;
}
正如你所看到的,我使用遞歸來獲取值作爲一個整數的總和。我怎樣才能修改這段代碼來接受一個向量並返回一個向量?
比如,我想通過2
1,2,3,4乘以整個矢量將返回2,4,6,8等..
還是有更好的方法遞歸地做到這一點?
編輯:模板的東西是不是必需的。只有遞歸。我只是認爲這可能與模板做到這一點...
你不能用一個向量作爲模板參數。 – user463035818
我明白了。所以我必須使用其他方法? – sdkk2
爲什麼要在編譯時將矢量乘以2?爲什麼它需要遞歸? – user463035818