C++ 将字符串插入二维向量的指定位置

C++ 将字符串插入二维向量的指定位置,c++,vector,C++,Vector,所以我要做的就是在向量中插入一个字符串 class World { public: void writeCell(int writelocW, int writelocH, std::string input); private: std::vector<std::string> wH; std::vector< std::vector<std::string> > grid; }; void Worl

所以我要做的就是在向量中插入一个字符串

class World
{
    public:
        void writeCell(int writelocW, int writelocH, std::string input);
    private:
        std::vector<std::string> wH;
    std::vector< std::vector<std::string> > grid;
};

void World::writeCell(int writelocW, int writelocH, std::string input)
{
   wH.insert(wH.begin()+writelocH,1,input);
   grid.insert(grid.begin()+writelocW,1,wH);
}
阶级世界
{
公众:
void writeCell(int writelocW、int writelocH、std::string input);
私人:
std::向量wH;
标准向量<标准向量>网格;
};
void World::writeCell(int-writelocW、int-writelocH、std::string输入)
{
插入(wH.begin()+writelocH,1,输入);
grid.insert(grid.begin()+writelocW,1,wH);
}
从另一个标头读取
writeCell
的参数

但是当我运行该文件时,它给了我一个错误“向量迭代器+偏移量超出范围”
writelocW
writelocH
都设置为1并输入到
“Desc”
。该错误似乎是由插入的
部分的
“+writelocH”
调用的。如何修复此问题?

在插入到随机位置之前检查向量大小。如果向量大小小于writelocH
,则会出现“超出范围”异常:

替换

wH.insert(wH.begin()+writelocH,1,input);
grid.insert(grid.begin()+writelocW,1,wH);
与:


在插入到随机位置之前检查向量大小。如果向量大小小于writelocH,则会出现“超出范围”异常:

替换

wH.insert(wH.begin()+writelocH,1,input);
grid.insert(grid.begin()+writelocW,1,wH);
与:


啊,我太盲目了,我想可能是“writelocH”是个整数的问题,但是。。。。非常感谢你!啊,我太盲目了,我想可能是“writelocH”是个整数的问题,但是。。。。非常感谢你!