将元素从1D向量添加到2D向量

时间:2017-03-01 17:34:34

标签: c loops vector

我有一个名为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);
        }
    }
}

1 个答案:

答案 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)
}