是否可以初始化指定位置的点 vector ?


std::vector<std::vector<CV::Point> vecvec;
std::vector<CV::Point> vecpnt;
CV::Point pnt;
pnt.x = px;
pnt.y = py;
vecpnt.push_back(pnt);

然后将 vecpnt 插入/推入 vecvec 的第二行。假设 vecvec 不为空。

我试过了:
vecvec[location].push_back(vecpnt); // Say _location_ is set to two.

我没有错误,但是我的代码在编译后立即中止。

谢谢你的帮助。

最佳答案

您需要先调整vecvec的大小。它应该有几个“位置”?假设MaxLocations。那你做

vecvec.resize(MaxLocations);
vecvec[location] = vecpnt;

如果您事先不知道尺寸,可以执行以下操作:
if(location >= vecvec.size())
{
    vecvec.resize(location+1);
}
vecvec[location] = vecpnt;

10-08 11:07