1、使用函数模板实现swap(&x,&y)交换两个实参变量a和b的指。

1、使用函数模板实现swap(&x,&y)交换两个实参变量a和b的指。

可以使用函数模板来实现交换两个实参变量的值,其代码如下所示:

template<typename T>
void swap(T& x, T& y) {
    T tmp = x;
    x = y;
    y = tmp;
}

其中,template<typename T> 定义了一个模板,其中的 typename T 表示类型参数 T,表示这是一个通用的模板函数,可以支持不同类型的参数。函数体中先定义了一个临时变量 tmp,然后将 x 的值赋给 tmp,再将 y 的值赋给 x,最后将 tmp 的值赋给 y,从而实现了两个参数变量的交换。

使用方式非常简单,只需要将需要交换的两个变量传递给 swap 函数即可,例如:

int a = 1, b = 2;
swap(a, b);
// 此时 a=2,b=1

上述示例中,首先定义了两个整数变量 ab,然后调用了 swap 函数,将它们作为参数传递进去,函数内部会自动根据传入的参数类型进行模板实例化,然后执行交换操作。最后输出 ab 的值,可以看到它们的值已经被交换了。

需要注意的是,为了让该函数支持自定义类型,你可能需要在类型定义中定义运算符重载函数。例如,如果想要支持自定义的结构体类型,你需要在结构体代码中定义 operator= 运算符重载函数来实现结构体赋值操作。

不知道是不是在这个意思,参考下哈!

void swap( int *x,int *y)
{
      int temp;
      temp=*x;
      *x=*y;
      *y=*temp;
}
int main()
{
   int a=5, b=3;
   swap(&a,&b);
   printf("a=%d, b=%d\n",a,b);
}

参考如下:

template <typename T>
void swap(T& x, T& y) {
    T t = x;
    x = y;
    y = t;
}