ベクトルを使用して相互に作用するカードの複数のデッキをプログラムする必要がある課題に取り組んでいます (たとえば、メイン デッキから 1 枚のカードを削除して別のカードに追加するなど)。割り当ては、カード構造体からオーバーロードされた「より小さい」演算子を使用して、std::lower_bound 関数と組み合わせてカードの正しい順序を決定する必要があることを示しています。これまでのところ、これは私が持っているものです:
void CardDeck::Add(const Card& card)
{
m_Cards.insert(std::lower_bound(m_Cards.begin(),m_Cards.end(),card,*insert smaller than operator here*),card);
}
Card 構造体のオーバーロードされた「より小さい」演算子は次のとおりです。列挙の所定の順序に基づいて、ランクとカードのスーツを比較します。
friend bool operator< (const Card& lhs, const Card& rhs)
{
if(lhs.m_Suit < rhs.m_Suit || (lhs.m_Suit == rhs.m_Suit && lhs.m_Rank < rhs.m_Rank))
{
return true;
}
}
どんな助けでも大歓迎です。割り当ては、オーバーロードされた演算子を使用する必要があることを示しています。独自の単純な「IsSmallerThan()」メソッドを作成することは許可されていません。
どうもありがとう。
編集:問題をマークするのを忘れました。コメントの追加情報。