0
我需要做一個模板函數,採用2個std::array
s的大小不同,但我不知道如何把它從main
函數調用:如何調用一個函數模板採用不同類模板作爲參數列表
// write a function to combine two sorted arrays and keep the resulting array sorted
#include<iostream>
#include<array>
using namespace std;
template <class T, size_t size>
template <class T, size_t size_1>
template <class T, size_t size_2>
array<T, size> combine(array<T, size_1> a, array<T, size_2> b)
{
int i, j, k;
i = j = k = 0;
array<T, size> c;
while (i < size_1 && k < size_2) {
if (a[i] < b[k]) {
c[j] = a[i];
j++;
i++;
} else {
c[j] = b[k];
j++;
k++;
}
}
if (i < size_1) {
for (int q = j; q < size_1; q++)
c[j] = a[q];
} else {
for (int e = k; e < size_2; q++)
c[j] = b[e];
}
return c;
}
int main()
{
std::array<int, 5> a = { 2, 5, 15, 18, 40 };
std::array<int, 6> b = { 1, 4, 8, 10, 12, 20 };
std::array<int, 11> c;
c = combine<int>(a, b);
for (int i = 0; i < c.size(); i++) {
cout << c[i];
}
return 0;
}
模板規格不能測序這樣:'模板<類T,爲size_t大小> 模板<類T,爲size_t SIZE_1> 模板<類T,爲size_t SIZE_2>' – 2014-10-05 00:42:27