小编use*_*910的帖子

为双向链表实现begin()和end()

我编写了自己的容器类,其原始内部数据结构是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()标准库做同样的方式?

c++ iterator linked-list list stdlist

3
推荐指数
1
解决办法
9532
查看次数

标签 统计

c++ ×1

iterator ×1

linked-list ×1

list ×1

stdlist ×1