1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 template <typename T>
 6 void AnySwap(T &a, T &b)
 7 {
 8   T temp = a;
 9   a = b;
10   b = temp;
11 }
12 

//重载 13 template <typename T> 14 void AnySwap(T a[], T b[], int n) 15 { 16 T temp; 17 for(int i = 0; i < n; i++) 18 { 19 temp = a[i]; 20 a[i] = b[i]; 21 b[i] = temp; 22 } 23 } 24
//特化 25 template <> 26 void AnySwap<int>(int &a, int &b) 27 { 28 a = a ^ b; 29 a = a ^ b; 30 b = a ^ b; 31 } 32 33 34 int main() 35 { 36 int x,y; 37 x = 10, y = 20; 38 AnySwap(x,y); 39 cout << "x: " << x << endl; 40 cout << "y: " << y << endl; 41 42 int a[3] = { 1,2,3 }; 43 int b[3] = { 3,2,1 }; 44 AnySwap(a,b,3); 45 for(int i = 0; i< 3; i++) 46 { 47 cout << "a[" << i <<"]: " << a[i] << endl; 48 cout << "b[" << i <<"]: " << b[i] << endl; 49 } 50 51 AnySwap(x,y); 52 53 float c = 12.3, d = 23.1; 54 AnySwap(c,d); 55 56 return 0; 57 }

 

posted on 2013-01-17 12:02  xunya  阅读(142)  评论(0编辑  收藏  举报