Не понимаю как реализовать iterator для списка
По заданию необходимо реализовать односвязный список, последний элемент которого указывает на первый.
в общем список выглядит так:
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()
.
если указать за последний элемент, то собственно будет указатель на начало.
создать псевдоузел в начале или конце нельзя т.к. это другой вариант С: