以下是一个琐碎的问题,可能以前曾有人问过,但是我无法通过搜索找到答案。
我想做的是使用std :: forward_list在C ++中实现“破解编码面试”中的一些练习。以我的理解,链接列表元素包含a)数据和b)指向下一个元素的指针。一些解决方案需要将“下一个”指针重新指向另一个元素,例如(伪代码)
node1.next = node1.next.next.next; // Effectively deletes 2 elements
但是,我在forward_list文档中找不到任何方法来执行此操作?我是否缺少某些东西,还是根本不可能?
如果有人可以指出正确的问题,我将非常高兴,谢谢!
您无法在中进行手动重新指向std::forward_list
,因为它隐藏了您的所有机制。这就是它被创建的原因!
相反,您需要对其执行业务操作。例如,要从列表中删除元素,您需要调用erase_after()
-它甚至具有重载功能,可以一次性删除两个相应的节点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句