list源码分析,基于c++ 和vs2019,cpp20标准

(1)list源码分析,基于c++ 和vs2019,cpp20标准。结构确实如图,双向环形链表。
在这里插入图片描述
(2) 关于list类型变量的初始化思考,如下图:
在这里插入图片描述
我们可以如此初始化 list 变量并赋值。但实际上 list 并没有如此直接对应的构造函数。实际编译器的做法是,把{9,10,11} 初始化给了initializer_list类型的变量。如下图:
在这里插入图片描述
内存中确实有这样的9,10,11 的数据序列,其起始和终止地址作为指针初始化了 initializer_list 变量。然后再以这个initializer_list 变量来作为实参,来初始化 list 变量,调用如下的 list 构造函数:
在这里插入图片描述
这些都是咱们猜测的编译器的编译原理。毕竟没看过c++编译器是怎么编译这些代码的。但咱们可以反汇编验证一下:

在这里插入图片描述
可见,代码力确实存在对 initializer_list 的使用。确实是这么构造 list 的。 谢谢
(3)数据结构
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值