中调用它的正确方法是什么
我有一个如下的模板
template<typename T>
T insert(T a[], int& n ,const T& x)
{
int i;
for (i = n-1; i > 1 && x < a[i]; --i)
a[i+1] = a[i];
a[i+1] = x;
++n;
}
在main()
我不确定这个定义是否正确。你是不是错过了:?其次,我没有看到模板定义或它的名称。第三,你给这个函数赋予了一个T返回类型,但你甚至没有返回任何东西。
一个正确的模板应该是这样的
template <typename T> class tMyExample
{
public:
tMyExample <T> () { // constructor code }
insert (T a[], int &n, const T &x) { // your code here }
};
int main (void)
{
tMyExample <int> MyExample;
return 0;
}
嗯,我的模板定义只是最小的。如果你不专门化它或在定义之外添加实现,你就会得到另一个故事。但是函数内部的声明(如main)是相同的:template_name identifier;
老实说,我从来没有在参数中使用[],我使用指针(如果您使用数组,则不需要分配)。