これはこのウェブサイトで最初の質問です、私は獲得したポイントで注文したい、チームのランキング、間違いはありますが、短絡は機能しません。 私はTeam.hオブジェクトのソートベクトルが動作しません
あなたの助けがこの問題にを克服したい
class Team
{
private:
std::string t_name;
int t_rank;
public:
int t_points;
Team(std::string name);
~Team();
void win();
void show(std::ostream &Flux)const;
};
std::ostream& operator<<(std::ostream &Flux, Team const &B);
bool operator<(Team const& A,Team const& B);
Team.cpp
Team::Team(string name): t_name(name), t_points(0) {}
void Team::win()
{
t_points+=3;
}
void Team::show(std::ostream &Flux)const
{
Flux << t_name;
}
std::ostream& operator<<(std::ostream &Flux, Team const &B)
{
B.show(Flux);
return Flux;
}
bool operator<(Team const& A,Team const& B){
return A.t_points < B.t_points;
}
main.cppに
int main()
{
vector <Team*> Schedule;
Schedule.push_back(new Team("Celtics")); //0
Schedule.push_back(new Team("Nets"));//1
Schedule.push_back(new Team("Bulls"));//2
Schedule[1]->win();
Schedule[1]->win();
Schedule[2]->win();
std::sort(Schedule.begin(), Schedule.end());
for(int i(0); i<Schedule.size(); i++)
{
cout << i << " - " << *Schedule[i] << endl;
}
return 0;
}
私は追加するには、私のファイルを編集していますあなたが与えた情報は、まだ問題に反応していないので、私はすべてを再投稿し、より多くの時間を待っていますelp
ベクタのポインタが含まれている - それはおそらくポインタをソートするためにしよう - オブジェクトに –
@ArtemyVysotskyが言ったように、あなたはソートしているポインタを格納;オーバーヘッドを持つ可能性のあるオブジェクトを格納したくない場合は、比較関数をソートして渡すことができます – UKMonkey
私は質問が不完全であると感じます。 win()の定義は何ですか?そして、私はスケジュール[1]を2回見ます。そのうちの1つがスケジュール[0]でなければならないと思いますか?詳細を教えてください –