親クラス:
Character
サブクラス:
Elf
Human
私は変数を持っています
int myScore;
string myType;
だから私がしたことは、myTypeでソートしてからスコアの昇順でソートすることでした
このようなレコードを取得した場合を意味します
[1] Human, 99
[2] Elf, 91
[3] Elf, 99
[4] Human, 99
並べ替えれば
[1] Human, 90
[2] Human, 99
[3] Elf, 91
[4] Elf, 99
2ソートを1ソートにマージできるマージ機能は以前聞いたことがあります。
でもどうやって使うんだろう。
とりあえずやったことは
character.cpp で
struct sort_by_score
{
static bool operator()(Character* x, Character* y)
{
return x->getScore() < y->getScore();
}
};
main.cpp で
これは私がしました
int main()
{
Character *chara[100];
vector<Character*> sortVector;
//some input of value here.. assuming now got 4 pointers to object, 2 human 2 elf.
sortVector.clear();
sortVector.assign(chara,chara + characterCounter);
//here i got question on how to sort by Human Then Elf
//2nd sort is sort by score
sort(sortVector.begin(), sortVector.end(), sort_by_score());
for (int i=0;i<characterCounter;i++)
{
cout << sortVector.toDisplay() << endl;
}
return 0;
}
すべての助けをありがとう!!