我编写了自己的容器类,其原始内部数据结构是std::list
.然后我需要创建自己的双向链表.我现在已经实现了我自己的双向链表以及链接列表的自己的迭代器,但是我遇到了问题std::list
,特别是begin()
和end()
.
根据我的理解,begin()
应该指向第一个节点,并且end()
应该将一个元素指向最后一个元素.我需要确保当我调用时end()
,我可以减少回到有效的最后一个元素.我还需要确保我可以做正常的遍历,比如......
while (beg != end ) { do something; beg++; }
Run Code Online (Sandbox Code Playgroud)
本质上,我的链表只使用包含数据元素的节点,指向前一节点的指针和指向下一个节点的指针.
当我第一次尝试实现我的时候end()
,我只有最后一个节点的下一个指针是a nullptr
.它可以单独工作,但不会像stl一样工作.
关于如何实现的任何意见begin()
和end()
标准库做同样的方式?