我使用字符矩陣通過以下方式定義字符向量向量。向量中擴展向量
std::vector<std::vector <char> > CharMap;
std::vector <char> temp(sizeY, '.');
std::vector <std::vector <char> > temp2(sizeX, temp);
CharMap = temp2;
這一直工作正常,到目前爲止,但現在我需要在運行過程中擴大最裏面的載體和事情錯了。
cout << (int) CharMap[0].size();
CharMap[0].push_back('.');
cout << (int) CharMap[0].size();
CharMap[0]
是char
個矢量。此代碼編譯沒有問題。運行時,矢量的大小不會改變。我在這裏試圖做的是將尺寸增加1,但輸出在cout
s上都是相同的。爲什麼尺寸不會增加?
在實際代碼中,我將增加所有CharMap[i]
的大小,迭代i
。但現在,即使這個簡化的版本不起作用。
發佈真實代碼。錯誤可能在其他地方。另外,不要無緣無故地將變體添加到'int'。使用'valgrind'來檢查出界錯誤。 –
'temp2'是不必要的。在'temp'後面用正確的參數創建'CharMap'。 –
通過valgrind運行你的程序,你會看到問題。 –