这是一个延续Removing duplicates from a DoublyLinkedList。无论如何,我已经删除了重复项,但如果位置是一个或两个,它只删除一个副本。任何人都可以看到任何能够实现这一目标的东西。这是他的功能:
void RemoveDuplicates(DoublyLinkedListIterator<Datatype> m_itr, string searchByFirstName, string searchBySecondName)
{
for (m_itr.Start(); m_itr.Valid(); m_itr.Forth())
{
if ((m_itr.Item().getFirstName() == searchByFirstName )&& (m_itr.Item().getSecondName() == searchBySecondName))
{
DoublyLinkedListIterator<Datatype> toDelete = m_itr;
m_itr.Forth();
Remove(toDelete);
}
break;
}
}
答案 0 :(得分:1)
你在循环的第一次迭代后调用break
,所以它只会进行一次迭代。