我知道你可以创建模板来使函数接受int,double,float。但是你可以“模板化”一个函数,以便它可以接受数组和向量吗?
答案 0 :(得分:3)
通常的答案是编写一个模板函数,它将一对迭代器作为参数。因为指针也是迭代器,所以你可以使用指向第一个指针的指针调用函数,并使用指向数组末尾元素的指针调用函数。
E.g。
template <class II>
void print_all(II first, II last)
{
for (II i = first; i != last; ++i)
cout << *i << ' ';
cout << '\n';
}
vector<int> v;
int a[10];
...
print_all(v.begin(), v.end());
print_all(a, a + 10);