c++ - 我将如何为列表编写 pop_front 函数?

标签 c++ class linked-list stl singly-linked-list

作为练习,我正在创建自己的名为 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 函数移除列表的头部并将列表中的下一个值设置为头部。我不知道实际的 pop_front 函数是如何工作的,所以我被困在这里。接下来我该做什么?

最佳答案

我不知道你会怎么写这个函数。至于我,我会这样写。

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

关于c++ - 我将如何为列表编写 pop_front 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22751244/

相关文章:

c++ - 如何在没有未覆盖区域的情况下绘制 CEdit 控件?

c++ - 常见的 C++ 实现如何处理 static_cast 和 reinterpret_cast

java - 如何让链表函数返回特定的类对象而不是Java中的 "Object"?

C#/.NET 不是通用 LinkedList 存在吗?

c++ - 使用已被 std::move 到别处的变量时出现错误,或至少出现警告

c++ - 是否可以在模板中定义指向外部 -"C"函数类型的指针?

C++。类方法指针

C#/XNA 如何让我的类彼此之间的 "speak"?

c++ - 覆盖或删除继承的构造函数

c - 完美平衡二叉搜索树