ランダムなクイックソートを使用するように私に依頼しましたが、関数ポインタを使って問題が見つかりました。C++関数ポインタ。一致する関数がありません
ソート機能がrqs.cpp
である:
template <typename Item_Type>
void rqs_with_range(std::vector<Item_Type> &vec, int p, int q,
int (*cmp)(Item_Type, Item_Type));
その後、私のcppファイルに、私はこのようなものがあります:
class Table{
constructor....
vector< vector<string>* >* holder; // table
int compare_str(vector<string>* a, vector<string>* b) {
return a->at(compare_column) < b->at(compare_column) ? -1 :a->at(compare_column) == b->at(compare_column) ? 0 : 1;
}
void rqs{
rqs_with_range((*holder) , 1, int(holder->size()-1), &Table::compare_str);
}
}
をコンパイラが、私は、機能rqs
に一致する機能をエラーを持っていないと言います。私の比較機能はテーブルのメンバー機能です、それは問題の原因ですか?
メンバ関数は関数ではなく、メンバ関数へのポインタは関数ポインタではありません。これは何百万回も尋ねられているので、このサイトを検索してください。 –