如果位置为1和2,则RemoveDuplicates仅删除

时间:2013-04-21 00:29:50

标签: c++

这是一个延续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;
        }
}

1 个答案:

答案 0 :(得分:1)

你在循环的第一次迭代后调用break,所以它只会进行一次迭代。