C / C ++ exchange two numbers, without the use of a third variable, function template to achieve

#include <iostream>

template<typename T>
void exchangeTwoNumber(T &t1, T &t2);

void test();
int main() { int a = 10, b = 20; double q = 10.1, w = 20.2; char z = 'z', x = 'x'; std::cout << "交换前的 a = " << a << ", b = " << b << std::endl; std::cout << "交换前的 q = " << q << ", w = " << w << std::endl; std::cout << "交换前的 z = " << z << ", x = " << x << std::endl; exchangeTwoNumber(a, b); exchangeTwoNumber(q, w); exchangeTwoNumber(z, x); test(); std::cout << std::endl; std::cout << std::endl; std::cout << "交换后的 a = " << a << ", b = " << b <<:: endl STD; STD :: COUT << " Q after exchange = " << << Q " , W = " << << W STD :: endl; STD :: COUT << " Z after exchange = " << << Z " , Z = " << << X STD :: endl; } template <typename T> void exchangeTwoNumber (T1 & T, T & T2) // generic function templates { T1 = T1 + T2; T2 = T1 - T2; T1 = T1 - T2; } void test() //XOR manner, deformed template function, the compiler does not pass through { int A = . 1 , B = 2 ; A ^ = B; B ^ = A; A ^ = B; STD :: COUT << " ... A = " << << A " , B = " << << B STD :: endl; }

 

Guess you like

Origin www.cnblogs.com/azbane/p/11261698.html