2015-01-06 98 views
-6
#include <iostream> 
#include <algorithm> 

using namespace std; 

class myclass 
{ 
    public: 
    int start; 
    int end; 
}; 

bool comp (const myclass &a,const myclass &b) 
{ 
    return a.start < b.start; 
} 
int main (void) 
{ 
    int n,temp,t,l,r,i,j; 
    cin>>t; 
    while (t != 0) 
    { 
     cin>>n; 
     temp = n; 
     i = 0; 
     myclass arr[100000]; 
     while (temp != 0) 
     {  
      cin>>l>>r; 
      arr[i].start = l; 
      arr[i].end = r; 
      i++; 
      temp--; 
     } 

     for (j = 0; j < i; j++) 
      cout<<arr[i].start<<" "<<arr[i].end<<"\n"; 
     cout<<"\n"; 
     sort(arr,arr+i,comp); 
     for (j = 0; j < i; j++) 
      cout<<arr[i].start<<" "<<arr[i].end<<"\n"; 
    t--; 
    } 
    return 0; 
} 

我做了一個類,我試圖掃描myclass數組中的值。但是,當我輸入我輸入的值時,它顯示全部爲0。 發佈值的輸入,我必須對值進行排序,但問題是輸入在我所做的自定義類的數組中沒有正確獲取。我在這做錯了什麼?爲什麼它將所有數據值初始化爲0?

+1

補充說明:它被認爲是不好的做法,使一個類的成員公開,並直接訪問它們。如果你想創建一個直接訪問成員的簡單數據結構,可以使用'struct'而不是一個類。 –

+1

@AntonPoznyakovskiy Bah,如果你以任何方式使用'struct'或'class',它都沒有區別。在這種情況下,'struct'的優點是可以節省一些輸入,這是將它更喜歡「class」的唯一理由。 – juanchopanza

回答

5

變化[i][j]這些循環內:

for (j = 0; j < i; j++) 
    cout<<arr[j].start<<" "<<arr[j].end<<"\n"; 
相關問題