メンバー関数コンパレーターを使用してクラス オブジェクトの配列を並べ替えようとしている次のコードの何が問題なのかわかりません。
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);
次のエラーが表示されます。
エラー: 'sort(main()::Query [(((unsigned int)(((int)q) + -0x00000000000000001)) + 1)], main()::Query*)' の呼び出しに一致する関数がありません</p>
更新: エラーの原因がわかりました。クラスをメインに含めました。クラス定義をメインの外に移動したところ、問題は解決しました。なぜこれが起こるのかを理解するのに十分な C++/OOP の理解がありません。誰かが説明したり、役立つリソースに案内してくれたりしてくれれば幸いです。