在對二維vector如 vector< > vec用push_back存放資料時,如vec[i].push_back()會出現下標越界。
這是因為此時的vec為空,無論是vec還是vec[i]的size都是0,這個時候取vec[i]會出現下標越界情況。解決辦法是在push_back之前先定義vec的長度,如vec.resize(5); 儘管不指定vec[i]的長度,也是可以的。因為很容易的我們想到一維陣列vectorvec1,儘管我們不對vec1定義大小,但是我們仍然用vec1.psh_back。
我們也可以同時指定vec和vec[i]的大小,此時用到乙個臨時一維vector,**如下:
vector > v1;
vectortemp(4)
v1.resize(5,temp)
此時的v1的size為5,v1[i] (0要注意的一點是:如果用的是全域性的vector,記得用.clear()清空,以防這次迴圈的vector值影響下一次結果。
C 二維vector使用
在stl中vector這一容器,無論是在封裝程度還是記憶體管理等方面都由於傳統c 中的陣列。本文主要是關於使用vector初始化 遍歷方面的內容。其他二維的思想也是類似的。int p p new int 10 注意,int 10 表示乙個有10個元素的指標陣列 for int i 0 i 10 i ...
C 的二維vector和C的二維陣列學習
參考了 可通過下列 直接建立m n的二維vector vector ivec m vector n m n的二維vector 動態建立m n的二維vector 方法一 vector ivec ivec.resize m for int i 0 i ivec ivec.resize m,vector ...
二維向量 vector
又學一招!二維向量vector 在vc下的使用技巧。隨著對c 學習的逐步加深,發現stl確實是個好咚咚。vector是我用到的第乙個stl容器,它一直吸引我學習和使用stl。但當我用到二維的vector時 比如 vector 卻發現似乎不能用。我用的vc6就是不認它,竟報 error c2146 s...