2017-03-01 107 views
0

我有一個名爲geoData的一維向量,然後我有一個名爲redVec的二維向量與用戶定義的行和列。我想將1D矢量中的元素添加到2D矢量中,但是xCode中出現訪問錯誤。將元素從一維向量添加到二維向量

for(int r = 0; r < numRows; ++r){ 
    for(int c = 0; c < numCols; ++c){ 
     for(int i = 0; i < geoData.size(); ++i){ 
      redVec[r][c] = geoData.at(i); 
     } 
    } 
} 

回答

0

首先,你初始化你的redVec和每個內部向量(!)大小合適嗎?其次,你最內層的循環會做一些奇怪的事情。你可能想是這樣

for(int i = 0, r = 0; r < numRows; ++r){ 
    for(int c = 0; c < numCols; ++c){ 
     redVec[r][c] = geoData.at(i); 
     i++; // increase i each time new cell is filled 
    } 
} 

或者即使你沒有創建所需大小的矢量事先

for(int i = 0, r = 0; r < numRows; ++r){ 
    vector<whatever_type_you_have> row = vector... 
    for(int c = 0; c < numCols; ++c){ 
     row.push_back(geoData.at(i)) 
     i++; // increase i each time new cell is filled 
    } 
    redVec.push_back(row) 
}