vector 中存放陣列

2021-06-18 23:02:27 字數 751 閱讀 7871

vector >   array(3);//注意》 和》 之間的空格。 

array2可以儲存3個向量,向量的長度是可以改變的。array2[i]返回的是第i個向量。同理,array2[i][j]返回的是第i個向量中的第j個元素。 

注意不能這樣賦值: 

array2[1][2]=9; 

原因就是你沒有指定向量的大小。

用push_back函式可以解決問題:array2[1].push_back(9);但是好象不太爽。就不能用operator嗎?答案是肯定的。不過要多加幾個步驟,如下: 

for(int   i=0;i <3;i++) 

array2[i].resize(3); 

這樣,你就定義了乙個3x3的陣列了

或者這樣使用,存放字串陣列:

typedef vectorstrarray; 

typedef vectorstrarray2; 

strarray strings1; 

strings1.push_back("string1"); 

strings1.push_back("string2"); 

strarray2.push_back(strings1); 

strarray strings2; 

strings2.push_back("string21"); 

strings2.push_back("string22"); 

strarray2.push_back(strings2);

Vector容器中存放結構體型別的變數

如果要在vector容器中存放結構體型別的變數,經常見到兩種存放方式.方式一 放入這個結構體型別變數的副本。方式二 放入指向這個結構體型別變數的指標。假設結構體型別變數是這樣的,cpp view plain copy print?typedef struct student studentinfo ...

vector容器中存放結構體型別的變數

如果要在vector容器中存放結構體型別的變數,經常見到兩種存放方式.方式一 放入這個結構體型別變數的副本。方式二 放入指向這個結構體型別變數的指標。假設結構體型別變數是這樣的,cpp view plain copy print?typedef struct student studentinfo ...

vector中存放物件和指標的區別

這裡先說出結論 vector中push back物件時,會呼叫物件的拷貝建構函式。而且在vector空間不足時,繼續push back,vector會將之前的所有物件都拷貝構造到一塊更大的空間裡。也就是說物件如果較大,那麼最好用vector儲存指標以減少呼叫拷貝構造 造成的消耗,如果vector存指...