通过阅读源码可知,该单向链表不像list双向链表那样有专门的前导节点。即list._Mypair._Myval2._head._next才指向第一个有效数据节点。而 forward_list ._Mypair._Myval2._head 已经指向了有效数据节点。原因就在于复杂巧妙的类型转换。如下图的构造函数里:

对箭头所指的注释进行展开,如下

这里的源代码里也显示了,c++类型转换的强大。这还是俺学习课本以来,第一次遇到如此强大的类型转换应用。特单独强调明确一下。谢谢
(2) 数据结构


c++ ,vs2019, cpp20规范之 forward_list 源码分析
于 2023-07-31 02:04:55 首次发布
文章探讨了C++中的forward_list与list在实现上的差异,特别指出forward_list的头部直接指向有效数据节点,而非像list那样需要通过前导节点。这种设计得益于复杂的类型转换,尤其是构造函数中的巧妙运用。作者在阅读源码过程中对此有深刻体会,并强调这是其首次遇到如此强大的类型转换应用场景。
99

被折叠的 条评论
为什么被折叠?



