gpt4 book ai didi

c++ - 如何通过全名从双向链表中删除重复项

转载 作者:行者123 更新时间:2023-11-28 07:39:30 25 4
gpt4 key购买 nike

我有一个双向链表,其中存储玩家对象。玩家对象包含名字、姓氏、等级和经验。我正在尝试创建一个函数来删除重复的播放器对象。例如,如果我输入 Luis suarez 然后再次输入他,我希望该功能要求用户输入重复的名称并删除其中一名 luis suarez 球员(最好是列表中的最后一名)。我尝试了很多东西,但没有一个起作用,也没有删除任何东西。谁能帮我解决这个问题?

这是我对 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 个带 getter 的成员变量。

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

在我的链接列表中,我有 3 个类。

DoublyLinkedListIterator;
DoublyLinkedList;
DoublyLinkedListNode;

非常感谢任何帮助。

编辑:跟进:Removing duplicates from a DoublyLinkedList

最佳答案

看起来您必须删除链表中的实际节点(使用迭代器)。现在您只需对本地字符串变量 playerDuplicate 使用 delete。

完整解决方案 in the follow-up.

关于c++ - 如何通过全名从双向链表中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16124663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com