对于windows平台下的vs2010下vector数组提示“vector subscript out of range”很头疼
对于下面的部分代码,在vs2010的windows平台下提示数组越界(编译通过,执行exe提示)但是在深度linux下的codeblock正常。//第一种形式/*Vector <OutLineHand>outline(filterContours.size()+1);for(size_ti = 0; i < filterContours.size(); i
·
对于下面的部分代码,在vs2010的windows平台下提示数组越界(编译通过,执行exe提示)但是在深度linux下的codeblock正常。
//第一种形式
/*Vector <OutLineHand> outline(filterContours.size()+1);
for(size_t i = 0; i < filterContours.size(); i ++)
{
OutLineHand(filterContours[i],nframe);
outline[i] = OutLineHand(filterContours[i],nframe);
}*/
//第二种形式
Vector <OutLineHand> outline;
for(int i = 0; i < (int)filterContours.size(); i ++)
{
outline.push_back(OutLineHand(filterContours[i],nframe));
}
…
1.OutLineHand是一个自定义封装的轮廓类,包含数据成员和成员函数。
2.filterContours是vector< vector > 类型,图像处理中的轮廓(点的集合)。
3.OutLineHand是一个自定义封装的轮廓类的构造函数,我断点调试执行到
outline[i] = OutLineHand(filterContours[i],nframe);这句就提示越界。
有谁遇到这种问题,请指教。谢谢!
更多推荐
已为社区贡献1条内容
所有评论(0)