2012-10-31 70 views
1

我想在C++中使用stl排序來對結構進行排序。但我得到一些錯誤。難道我們不能使用stl sort對C++中的結構進行排序,或者如果我的錯誤讓我知道更正,它是否是我在實現中的錯誤。我可以使用stl排序在C++中的結構排序

下面的代碼(其非常小的:))

#include<iostream> 
#include<algorithm> 
using namespace std; 
struct log { 
     int sd; 
     int ed; 
} log[1000]; 
bool key(int i,int j) { 
return (log[i].ed<log[j].ed); 
} 
int main() { 
int n,i; 
cin>>n; 
sort(log,log+n,key); 
for (i=0;i<n;i++) cin>>log[i].sd>>log[i].ed; 
for (i=0;i<n;i++) cout<<log.sd<<","<<log.ed<<endl; 
system("PAUSE"); 
} 

回答

0

是的,可以。但是你的比較器應該採用兩個const log &(而不是int)參數。

+0

嗯...以及我在C++初學者,可以告訴我更多的地方,我應該把'const日誌&'? –

+0

@ManasVerma'bool key(const log&a,const log&b){return(a.ed chys

+0

順便說一句。大多數人喜歡在這種情況下使用函子(函數對象)而不是常規函數,儘管後者也適用。 – chys