我需要一个带有循环的LinkedList,并希望操纵指针等。我想知道我是否可以使用std :: list而不是实现我自己的LinkedList类,并使用它的迭代器几乎就像我使用指针一样。但似乎迭代者不允许我这样做。我知道,这就是我试图做的,看起来并不合适。我是std的新手,请耐心等待!
我希望循环的开始位于节点100处。
int main() {
std::list<int> l = {1, 3, 5, 7, 9, 11, 13, 15, 100, 103, 104, 106};
std::list<int>::iterator it1 = l.begin();
while (*it1 != 100) it1 = std::next(it1);
std::list<int>::iterator it2 = l.begin();
while (*it2 != 106) it2 = std::next(it2);
std::next(it2) = it1; //(106)->next = 100
std::cout << *(std::next(it2)); //it won't print 100, (obviously?)
}
我认为尝试将迭代器视为指针是完全错误的,但是我绝对不能跳过实现我自己的LinkedList吗?