-2

THumanクラスの人間がn人います

各人間は、2 つのラウンドのうちの 1 つでいくつかのポイントを獲得しています。(スコア1とスコア2)

各人間には固有の ID があります。スコア 1 と 2 もユニークです。

さらに、人間には、score_t=score1+score2 があり、2 人で同じになる場合があります。

人間の ID を返す 6 つの変数を THuman に実装する必要があります。

  1. より大きなスコア1
  2. 小さいスコア1
  3. より大きなスコア2
  4. 小さいスコア2
  5. より大きなスコア_t
  6. 小さい score_t

(これらの条件を満たす人が多数いる場合は、対応するパラメーターの差が最も小さい人を選択する必要があります (1 と 2 のスコア 1 など))

つまり、3人の人間のソートを格納するようなものです。

さらに 2 つの関数が必要で、引数 x を取得し、score1 または score 2 を x に設定してから、上記の 6 つの変数の一部を更新する必要があります。

1 つの変数だけでソートする必要がある場合は、クラスの set および defined > および < 演算子を作成するだけです。しかし、3 つのパラメーターの解決策は何ですか? ここで STL を使用することは可能ですか、それとも独自のリスト/ツリーを作成する必要がありますか?

__ 回答: C++ の一連のポインターを更新するにはどうすればよいですか?

4

1 に答える 1

1

std::sortには、コンパレータを最後の引数として受け取るオーバーロードがあるため、任意の比較を実装できます。

std::stable_sortにも興味があるかもしれません。

于 2013-10-08T09:59:15.507 に答える