📜  在 C++ 中使用模板函数交换两个数字(1)

📅  最后修改于: 2023-12-03 15:37:18.523000             🧑  作者: Mango

在 C++ 中使用模板函数交换两个数字

在 C++ 中,我们可以使用模板函数来交换两个不同类型的变量的值。这种方法可以使我们减少代码重复和增加程序的可重用性。

以下是使用模板函数交换两个数字的示例代码:

#include <iostream>

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

int main()
{
  int a = 5, b = 10;
  double c = 5.5, d = 10.0;

  std::cout << "Before swapping:" << std::endl;
  std::cout << "a = " << a << ", b = " << b << std::endl;
  std::cout << "c = " << c << ", d = " << d << std::endl;

  swap(a, b);
  swap(c, d);

  std::cout << "After swapping:" << std::endl;
  std::cout << "a = " << a << ", b = " << b << std::endl;
  std::cout << "c = " << c << ", d = " << d << std::endl;

  return 0;
}

在上面的代码中,我们首先定义了一个模板函数 swap,该函数接受两个引用参数 xy,并交换它们的值。然后我们通过调用 swap 函数来交换不同类型的变量 ab,以及 cd 的值。

输出结果为:

Before swapping:
a = 5, b = 10
c = 5.5, d = 10
After swapping:
a = 10, b = 5
c = 10, d = 5.5

如上所示,我们成功地使用模板函数交换了两个数字的值。

注意,这里使用的是传引用的方式,即函数参数类型为 T&。这样做可以避免创建临时副本,有效地提高代码效率。

另外,模板函数可以处理不同类型的参数,但需要保证这些类型具有完整的定义,即在函数调用前已经定义过。