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存指...