我编写了自己的容器类,其原始内部数据结构是
据我所知,
std::list
。然后我需要创建自己的双向链表。现在我已经实现了自己的双向链表以及链表的迭代器,但是我在让它像std::list
一样工作时遇到了问题,特别是在使用begin()
和end()
时。据我所知,
begin()
应该指向第一个节点,而end()
应该指向最后一个元素的下一个元素。我需要确保在调用end()
时,我可以回溯到有效的最后一个元素。我还需要确保我可以进行正常的遍历,比如...while (beg != end ) { do something; beg++; }
基本上,我的链表只是使用包含数据元素、指向前一个节点和指向下一个节点的指针的节点。
当我首次尝试实现我的end()
时,我只是将最后一个节点的下一个指针设置为nullptr
。它可以运行,但不像STL那样工作。
如何实现与标准库相同的begin()
和end()
的建议?