0

这是混乱的部分。这意味着将 _head->prev 取消引用到 nullptr 但如果没有 prev 它会崩溃,所以我正在尝试处理该崩溃。当它到达

if( _head )
   (!_head->prev)

它搞砸了,因为没有以前的。我不知道如何编写一个 if 语句来处理这个时刻,这样它就不会中断。如果没有 prev 我只想 --_size 删除 tmpnode 并返回结果。

template <class list>
list linked_list<list>::pop_front()
{
assert( !empty() );

node_ptr_t tmpNode(_head);
list result = _head->data;
if(_head->next)
    _head = _head->next;
else
    _head = _tail;


if ( _head ) 
    if(!_head->prev)
    {
        --_size;
        delete tmpNode;
        return result;
    }else{
    _head->prev = nullptr;
    }else {
    _tail = nullptr;
}
//_head ? _head->prev=nullptr : _tail=nullptr;

--_size;
delete tmpNode;
return result;

}

4

0 回答 0