单独看list和list_iterator我都能看懂,但我不理解这两者是怎么联动的。比如,①list a;a.begin()返回的是首节点的迭代器(使用构造函数,把节点转换为迭代器)。可是迭代器的设计是模板,使用了三个参数,我不理解这其中的关系。②再比如list::literator ite这个又是怎么实现的,两者是什么关系?
表述的可能有问题,越想越乱了。
关于stl迭代器的实现(《stl元码剖析》)
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- flower980323 2023-12-05 14:12关注
①迭代器的构造函数传递link_type类型就能构造,所有begin,end能正常工作。模板参数不懂什么意思就看模板的知识
②list::literator里面有一个指向list的节点node指针,通过迭代器访问list,它的++、--重载都是改变指向list里面元素的位置迭代器就是访问容器一种方式,没啥难理解的,就是数组(容器)和数组指针(迭代器)的关系一样
C++的算法函数都是通过传递迭代器参数访问容器,不直接传递容器
很久以前看的这本书了,实现啥的没啥印象了解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 Opencv(C++)异常
- ¥15 VScode上配置C语言环境
- ¥15 汇编语言没有主程序吗?
- ¥15 这个函数为什么会爆内存
- ¥15 无法装系统,grub成了顽固拦路虎
- ¥15 springboot aop 应用启动异常
- ¥15 matlab有关债券凸性久期的代码
- ¥15 lvgl v8.2定时器提前到来
- ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
- ¥15 cam_lidar_calibration报错