Templates 调用main()中函数模板的正确方法,在C++;

Templates 调用main()中函数模板的正确方法,在C++;,templates,function,Templates,Function,我有一个模板如下 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; } 模板 T插入(T a[],整数和数字,常数T和x) { int i; 对于(i=n-1;i

我有一个模板如下

    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;
}
模板
T插入(T a[],整数和数字,常数T和x)
{
int i;
对于(i=n-1;i>1&&x

在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;
}
模板类tMyExample
{
公众:
tMyExample(){//constructor code}
插入(ta[],int&n,const T&x){//您的代码在这里}
};
内部主(空)
{
tMyExample MyExample;
返回0;
}
Wll,我的模板定义只是最小值。如果您不专门化它或在定义之外添加实现,那么您将看到另一个故事。但函数内部的声明(如main)是相同的:模板名称标识符

老实说,我从未在参数中使用[],我使用指针(如果使用数组,则不需要分配)