1
我不確定下面的代碼有什麼問題,我嘗試使用成員函數比較器對類對象的數組進行排序。使用成員函數對類對象的數組進行排序
class Query {
public:
int start;
int end;
int index;
bool operator<(const Query &b) {
return this->start < b.start;
}
};
Query query[q];
for (int i=0;i<q;++i) {
cin>>query[i].start>>query[i].end;
query[i].index = i;
}
sort(query,query+q);
我得到以下錯誤:
error: no matching function for call to ‘sort(main()::Query [(((unsigned int)(((int)q) + -0x00000000000000001)) + 1)], main()::Query*)’
更新: 我想通了錯誤的原因。我已將課程包括在我的主要內容中。當我在main之外移動類定義時問題解決了。我沒有足夠的理解C++/OOP來理解爲什麼發生這種情況。如果有人能夠解釋或指導我獲得有用資源,我將不勝感激。
你有沒有'#include'? –
zch
是的,謝謝。這個問題是不同的。以上所有代碼均位於main()內。但是當我在main之外移除類定義時,問題就解決了。我不明白爲什麼。 – elexhobby
@elexhobby您應該[編輯]您的問題,並將其更改爲包含此信息。 – Dukeling