亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您好,求教關于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 關注
  • 650 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號