以下是一个微不足道的问题,之前可能已经问过,但是,我无法通过搜索找到答案。

我想要做的是使用 std::forward_list 来实现 C++ 中“破解编码面试”中的一些练习。在我的理解中,链表元素包含 a) 数据和 b) 指向下一个元素的指针。一些解决方案需要将“下一个”指针重新指向另一个元素,就像这样(伪代码)

node1.next = node1.next.next.next; // Effectively deletes 2 elements

但是,我在 forward_list documentation 中找不到任何方法来做到这一点?我错过了什么,还是根本不可能?

如果有人能指出我正确的问题,我非常高兴,谢谢!

最佳答案

您不能在 std::forward_list 中进行手动重新指向,因为它对您隐藏了所有机制。这就是它被创建的原因!

相反,您需要对其执行业务操作。例如,要从列表中删除元素,您需要调用 erase_after() - 它甚至具有一次性删除两个连续节点的重载。

关于c++ - std::forward_list 是否支持手动重新指向?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36343817/

10-13 07:00