C++ RemovedUpplicates仅在位置为1和2时删除

C++ RemovedUpplicates仅在位置为1和2时删除,c++,C++,这是一个延续。不管怎么说,我已经到了删除重复的地步,但它只删除一个重复的位置,如果是一个或两个。有人能看到什么能让这一切发生吗。以下是他的职能: void RemoveDuplicates(DoublyLinkedListIterator<Datatype> m_itr, string searchByFirstName, string searchBySecondName) { for (m_itr.Start(); m_itr.Valid(); m_itr.Forth()

这是一个延续。不管怎么说,我已经到了删除重复的地步,但它只删除一个重复的位置,如果是一个或两个。有人能看到什么能让这一切发生吗。以下是他的职能:

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;
        }
}
void RemoveDuplicates(双链接标识符m_itr、字符串searchByFirstName、字符串searchBySecondName)
{
for(m_itr.Start();m_itr.Valid();m_itr.Forth())
{
if((m_itr.Item().getFirstName()=searchByFirstName)和&(m_itr.Item().getSecondName()=searchBySecondName))
{
双链接标识符toDelete=m_itr;
m_itr.Forth();
移除(toDelete);
}   
打破
}
}

在循环的第一次迭代后,您将调用
break
,因此它将只执行一次迭代。

如果我不执行此操作,则在第一次删除重复项后,它将开始删除两个对象。我不知道您刚才说的是什么,如果它们在列表中不在一起,它只会删除两个。哈哈,这很容易出错,我删除了中断,就像我上面所说的,如果它们在列表中不在一起,它会同时删除副本和我想要保留的副本。