为了账号安全,请及时绑定邮箱和手机立即绑定

您好,求教关于C++中vector< vector<int> >的含义.

您好,求教关于C++中vector< vector<int> >的含义.

慕盖茨4494581 2021-10-27 19:15:15
vector< vector<int> > vvec;的意思是:定义了一个vector,这个vector的element也是一个vector,那么我要问的是,对于内层的vector<int>,编译系统知道每个element的size为sizeof(int),而对于外层的,它知道element的size是什么吗???问题的意思就是,假如对于定义一个一维数组:int a[10];编译系统通过int知道了size,于是可以操纵存储空间.若定义一个二维数组,int a[8][10];编译系统通过定义中的第一维大小"[10]"知道a是一个数组,每个元素大小是10*sizeof(int),所以可以操作存储空间.而对于vector< vector<int> >来说,外层的vector可以动态增加存储空间,那么如何知道增加一个元素需要增加多少存储空间呢?意思就是,内层的也动态,外层的也动态,内层的知道增加一个是增加sizeof(int),而外层不知道内层有多少个元素,它增加时是增加多少个sizeof(int)呢?意思就是上面例子中的二维数组中的那个"[10]"是从哪知道的呢?我看的是英文原版的<<C++ Primer>>,我知道vector喝array有在run time动态增加的区别...拿array举例子是为了说明我的不解之处.我看到Page 93了,这只有道习题,并没有深入讲解vector< vector<int> >的过程是怎样的...过程是什么???
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

外层增加的是若干个vector<>,就其内部实现来讲,每个vector<>里面肯定有一个指针指向它所管理的那堆元素,但其自身大小也就是sizeof(vector<>)是固定的,所以外层增元素时很清楚要申请多大的空间。

查看完整回答
反对 回复 2021-10-31
  • 2 回答
  • 0 关注
  • 548 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信