📅  最后修改于: 2023-12-03 15:37:18.523000             🧑  作者: Mango
在 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
,该函数接受两个引用参数 x
和 y
,并交换它们的值。然后我们通过调用 swap
函数来交换不同类型的变量 a
和 b
,以及 c
和 d
的值。
输出结果为:
Before swapping:
a = 5, b = 10
c = 5.5, d = 10
After swapping:
a = 10, b = 5
c = 10, d = 5.5
如上所示,我们成功地使用模板函数交换了两个数字的值。
注意,这里使用的是传引用的方式,即函数参数类型为 T&
。这样做可以避免创建临时副本,有效地提高代码效率。
另外,模板函数可以处理不同类型的参数,但需要保证这些类型具有完整的定义,即在函数调用前已经定义过。