我正在處理PLY文件閱讀器(帶有頂點和麪孔位置信息的txt文件)。它由頭部,頂點位置,面部信息組成。向量下標超出範圍的多維向量
頭
-1 -1 -1 // XYZ座標
3 1 2 3 //該面由3個頂點 - 1,2,3
之後我繪製它與OpenGL。
我使它與數組一起工作,現在我想使用矢量容器來保存值。因爲在編譯期間我不需要知道大小。
我初始化我的兩個向量:
vector<string> ply_file;
vector< vector<float> > vertex_list;
隨着ply_file一切都好,但是當我嘗試寫進去vertex_list與此代碼:
int j = 0;
for(int i=first_vertex_row-1;i<first_vertex_row+vertex_number-1;i++)
{
std::stringstream ss(ply_file[i]);
ss >> vertex_list[j][0] >> vertex_list[j][1] >> vertex_list[j][2]; // x,y,z
j++;
}
,但我得到調試斷言失敗:矢量下標超出範圍。
我知道我是用錯誤的方式寫的,但我無法使它工作。 是否可以使用stringstream將其寫入多維向量?如果是這樣,該如何實現呢?
當斷言發生時,「i」和「j」的值是什麼?各個矢量的範圍是? –
使它「工作」(使用一個小代碼示例)* * *維矢量,它將全部變得清晰。 –
您沒有向我們展示使用'vector :: push_back','vector :: insert','vector :: resize'等調整向量的大小。現在,您聲明瞭兩個空向量,然後顯示代碼他們好像他們充滿了數據。這不是一個完整的例子。 – PaulMcKenzie