我有一个名为geoData的一维矢量,然后我有一个名为redVec的2D矢量,其中包含用户定义的行和列。我想将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 :(得分: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)
}