我如何为列表编写pop_front函数?

时间:2014-03-30 23:24:31

标签: c++ list stl

作为练习,我创建了自己的名为List的容器类模板。它是基于模板的单端链表,节点是嵌套在列表中的结构,如下所示:

template<typename T>
class list
{
protected:
    struct node
    {
        T data;
        node* link;
    };
    node* head;
    //Rest of the code after here
};

容器有两个构建列表的函数:push_front和pop_front。我设法找出了push_front函数,但是我无法弄清楚如何编写pop_front函数。 pop_front函数删除列表的头部,并将列表中的下一个值设置为head。我不知道实际的pop_front函数是如何工作的,所以我被困在这里。接下来我该怎么办?

1 个答案:

答案 0 :(得分:1)

我不知道你会怎么写这个函数。至于我,我会用以下方式写它。

void pop_front()
{
   if ( head )
   {
      node *tmp = head;
      head = head->link;
      delete tmp
   }
}