任务是实现一个单链表,其最后一个元素指向第一个元素。
总体来说,列表如下:
template<typename T>
class Forward_list
{
T data_;
Forward_list<T>* next_;
};
迭代器如下所示:
class iterator
{
Forward_list<T>* node_;
};
问题是我不知道如何编写一个函数end()
来指向列表的最后一个元素,以便可以方便地使用它<algorithm>
。
现在代码看起来很糟糕,很多东西都缺失了,我理解,如果你责骂它,我会很高兴,这样它会变得更好https://gist.github.com/shycoshy/b39ce63ea19984ee2a3073d0a1c1075e
如果您仅push_back()
在列表中使用它并尝试在帮助下输出它,那么它“有点工作”并且只是“吃掉”迭代器需要输出的最后一个元素end()
。如果你指向最后一个元素,那么它实际上是一个指向开头的指针。
在开始或结束处不可能创建一个假结,因为这是另一个选项C: