使用std::list创建循环链表
Create circular linked list using std::list?
所以,我一直想知道是否有一种方法可以在c++中用std::list创建循环链表。我似乎想不出让最后一个元素指向第一个元素的方法。有什么想法吗?
std::list接口不支持循环列表,其中first.prev是指向last的指针,last.next是指向first的指针。
您不能递减std::list::begin((返回的迭代器。一般来说,您不能递减std::…::返回的任何迭代器begin((。
增加std::list::back((返回的迭代器会产生一个迭代器==std::list::end(((std::…::back(((通常也是如此(。
如果您很好奇,VisualStudio模板在内部使用一个伪节点作为循环双链表的一部分来实现std::list。dummy.next指向第一个,dummy.prev指向最后一个,first.prev==last.next==指向伪节点的指针,但这不允许您将其视为传统的循环双链表。
不,没有。
std::list
不允许您自己控制链接。该列表为您控制链接。您无法自定义它们。
请注意,如果可以自定义列表中的链接,则列表中的函数可能无法正常工作。例如,如果你在一个循环列表上迭代,你永远不会完成!
相关文章:
- 使用std::list创建循环链表
- 循环链表:无限循环
- 打印循环链表
- 程序在为链表创建推送函数时崩溃
- C++循环链表删除,计数从下一个节点开始
- C++ 循环链表的递归基本情况
- 自定义链表创建 RtlValidateHeap 错误,其结构具有链表
- 为数据缺少默认构造函数的链表创建节点
- 循环链表的内存错误:未分配正在释放的指针
- 返回指向循环链表某个点的指针
- 在 for 循环(链表)中删除两次后,变量不可用
- 尝试拆分循环链表.显示输出但崩溃.在 IDEone 中显示运行时错误
- 如何为链表C++创建"弹出尾巴"函数
- 如何打印出双向循环链表
- 循环队列和循环链表
- 如何为双链表创建交换函数
- 我想在我的代码中实现一个双重循环链表 - 运行时错误
- 在链表创建循环中插入
- 用C++打印出循环链表
- 正在为链表c++创建DataType