C++ vector动态二维数组的存储问题

接上篇C++ STL--vector详解-CSDN博客

动态二维数组每一行在物理上是连续的,但是行与行之间在物理上不一定是连续的,要先理解动态二维数组,要先知道vector里面究竟有什么,如下图,vector里面有三个元素,_a存的是数据,_size是元素个数,_capacity是容量,一个二维数组vv,它的类型是vector<int>*,里面的_a指向一个数组,该数组的元素都是vector,这些vector对应行,而这些vector中的_a的类型是int*,指向的是一个个连续的存储空间(数组),这些数组就是每一行内的元素。

由此可以知道vv[i] [j]的逻辑,vv[i]就是vv.operator[](i),返回值类型是vector<int>,此时找到“行”对应的vector,该vector中存储了一维数组的首地址,就可以通过这个vector找到数组了。

[j]就是vv[i].operator[](j),返回值类型为int类型,也就是存储的元素。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值