2016-07-07 59 views
3

我有兩個陣列是這樣的:確定在排序模板函數2個陣列差分量

int iArr[] = {2, 34, -4, 2, 15, 0, 15}; 
Person pArr[] ={{"Nam", 23}, {"Hao", 18}, {"Phuong", 23}, {"Ha", 65}, {"Banh", 12}, {"Son", 25}}; 

和冒泡排序的這樣的功能:

template <class T> 
void bubble(T a[],int n) 
{ 
    if ((typeid(a).name()).find("Person") != std::string::npos) 
    { 
     std::cout << "found!" << '\n'; 
    } 
    int i,j,t; 
    for(i=0;i<n;i++) 
    { 
     for(j=0;j<n-i-1;j++) 
     { 
      if(a[j]>a[j+1]) 
      { 
       swapX(a[j], a[j+1]); 
      } 
     } 
    } 
} 

如何確定哪個數組傳遞到這個功能?

我必須按升序排序iArr,並按降序排列pArr(按年齡)。

回答

1

只是通過模板另一種說法,告訴它無論您想要上升或下降。

另外,不要使用模板。編寫一個函數並將其重載。