私は二重の値を返す関数calculateDistance()によって返される値に応じてベクトルをソートしようとしています。私は問題がpermutationCopmaratorメソッドによって引き起こされると思います。 .cppファイルには、次のようになります。C++あなたのクラスの関数に基づいてコンパレータでstd :: sortを使う方法
bool TSPgenetic::permutationComparator(int* i, int* j){
return calculateDistance(i) < calculateDistance(j);
}
void TSPgenetic::chooseNewPopulation(){
sort(population->begin(), population->end(), permutationComparator);
sort(children->begin(), children->end(), permutationComparator);
`....`
}
ヘッダファイルの断片:std::sort
の三番目のパラメータが有効ではないよう
bool permutationComparator(int*, int*);
これにはどのような問題がありますか? – NathanOliver
なぜ整数へのポインタ*のベクトルがありますか?なぜあなたはそれを割り当てて積み上げているのですか?なぜ同じ演算子で同じ範囲をソートしているのですか* 2回*? –
Im申し訳ありません、書くのを忘れた エラー\t C3867 \t 'TSPgenetic :: permutationComparator':非標準構文。 '&'を使用してメンバーへのポインタを作成します。 – Barcys