0

プレイヤー オブジェクトを格納する二重リンク リストがあります。プレーヤー オブジェクトには、名、姓、レベル、経験が含まれます。重複したプレーヤー オブジェクトを削除する関数を作成しようとしています。たとえば、Luis suarez と入力してからもう一度入力した場合、ユーザーに重複した名前を入力し、luis suarez プレーヤーの 1 つ (できればリストの最後のプレーヤー) を削除するように求める関数が必要です。私は多くのことを試しましたが、どれも機能せず、何も削除しません。誰でもこれで私を助けることができますか?

これがRemoveDuplicateでの私の試みです:

// -------------------------------------------------------------------------------------------------------
//  Name:           RemoveDuplicates.
//  Description:    Searchs through the list and finds duplicates and removes one.
// -------------------------------------------------------------------------------------------------------

void RemoveDuplicates(DoublyLinkedListIterator<Datatype> m_itr, string searchByFirstName)
{
    Stats player;
    string playerDuplicate = player.getFirstName();
    for (m_itr.Start(); m_itr.Valid(); m_itr.Forth())
        {
            if (m_itr.Item().getFirstName() == searchByFirstName)
            {
            playerDuplicate = m_itr.Item().getFirstName();
            }
        }
    delete(playerDuplicate);
}

私の統計クラスには、ゲッターを持つ 4 つのメンバー変数があります。

private:
    string firstName;
    string secondName;
    int level;
    int experience;

リンクされたリストには、3 つのクラスがあります。

DoublyLinkedListIterator;
DoublyLinkedList;
DoublyLinkedListNode;

どんな助けでも大歓迎です。

編集: フォローアップ: DoublyLinkedList からの重複の削除

4

1 に答える 1

1

リンクされたリスト内の実際のノードを削除する必要があるようです(イテレータを使用)。これで、ローカル文字列変数 playerDuplicate で削除を使用するだけです。

フォローアップで完全解決。

于 2013-04-20T20:20:30.647 に答える