在双向链表中搜索

时间:2013-11-01 11:04:45

标签: c++ deque

我遇到了如何在双重链接列表到达双端队列结束时退出循环的问题。如果双端队列中有一个元素,它将返回它的位置。如果没有,它将在双端队列结束时返回迭代器。我非常感谢你的帮助。谢谢

这是我的搜索功能

unique_ptr<DequeIterator<E>> find(E match)
{
    assert(!is_empty());

        // the iter will begin from the head.
    unique_ptr<DequeIterator<E>> iter(iter_begin());

        // Here is where I do not know how to get it quit when 
        // it gets to the end of the deque.
        // ALSO it needs to check the value at the end of
        // the deque before it quits too.
    while(iter->value() != match)
    {
        iter->next();
    }
    return iter;
}

1 个答案:

答案 0 :(得分:3)

当然只是:

while( iter != iter_end() && 
       iter->value() != match )
{
    iter->next();
}

return iter;