ペアの最初の要素のみを並べ替える必要があるため、並べ替え演算子の使用に問題があります。コードは単純ですが、機能していません。
演算子は次のように定義されています。
struct sort_pred {
bool operator()(const CromosomaIndex &left, const CromosomaIndex &right) {
return left.first < right.first;
}
};
タイプは
typedef std::pair<double,int> CromosomaIndex;
私はこのように配列をソートしようとしています:
CromosomaIndex nuevo[2];
nuevo[0].first = 0.01;
nuevo[0].second = 0;
nuevo[1].first = 0.009;
nuevo[1].second = 1;
int elements = sizeof(nuevo) / sizeof(nuevo[0]);
sort(nuevo, nuevo+ elements, sort_pred());
しかし、問題は、これが最初と2番目の要素を並べ替えていることであり、最初の要素のみを並べ替えて2番目の要素を固定したいだけです。何かご意見は?