c++ - 如何为自定义链表容器编写 end() ?

标签 c++

我正在为我的家庭作业编写一个链接列表,我需要实现 begin() 和 end() 以满足我的程序的要求。

Begin() 相当简单

Node* List::begin(){return head;}

我应该如何实现end()?

最佳答案

您可以返回一个 NULL 指针,或者如果您有自定义 tail 节点,则返回该指针。如果是循环双向链表,则可以返回哨兵节点。

请记住,检查列表末尾的正确方法是调用 List::end(),因此,如果您已正确设置 List 类,那么返回什么并不重要,只要

Node* node = mylist.begin();
while (node != mylist.end()) { /*... loop */ }

有效,当到达列表末尾时退出while循环。所以最主要的是 List::end() 需要返回一些唯一的东西,如果你遍历列表的中间,你永远不会遇到这些东西。

关于c++ - 如何为自定义链表容器编写 end() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13215743/

相关文章:

c++ - C++ 中的数组操作

c++ - 我们可以在 c++20 协程中使用 alloca() 或可变长度数组扩展吗?

c++ - C/C++ 中的可移植目录/文件监视库

C++按属性对项目进行排序

c++ - 我的射弹更新功能有什么问题?

c++ - 从十进制转换为二进制并返回位集时出现问题

c++ - 公开不透明 C 结构体中的字段

c++ - 后缀运算符重载中虚拟参数的用途? C++

c++ - 如何将模板类型限制为基类而不包括该基类的子类?

c++ - 如何在启动时隐藏鼠标指针?