私はブラックジャックのゲームを作っていて、ユーザーが処理する手として機能する配列を作成しました。手を数字順に並べ替えるように並べ替えることができれば、ユーザーがどのような手の形をしているのかを簡単に判断できます。ここに私のカードのsturct:構造体の配列を並べ替える(カード)
struct ACard{
int num;
const char *pic;
};
私はint num
で配列をソートしたいと思います。ソートを完了するために単純な挿入ソートを使用しようとしましたが、そうするために演算子をオーバーロードする必要があると信じていますが、前にこのような構造体をオーバーロードしていないので、ここで私はこれまで、ソートのために持っているものです。
int i,j;
ACard key;
for(int i = 1; i < 5; i++){
key = userHand[i].num;
j = i - 1;
while(j >= 0 && userHand[j].num > key){
userHand[j + 1] = userHand[j];
j = j - 1;
}
userHand[j + 1] = key;
}
*注userHand
は、私は並べ替えたいACard's
の配列です。
ACARDを格納するのに 'std :: array'または' std :: vector'を使用せず、カスタムコンパレータで 'std :: sort()'を使う理由はありますか? –
比較ラムダで 'std :: sort'を使わないのはなぜですか? – Quentin
私はstd :: sort()に慣れていません、説明できますか? – zsloan112