我在将 vector 数组加载到 vector RGB 数组时遇到问题。
之后
rgbv = pointcloud_RGB[i];
我收到错误“vector 下标超出范围”。有人可以指导我吗。
问候
苏哈斯
const std::vector<cv::Vec3b>& pointcloud_RGB;
for (unsigned int i=0; i<points.size(); i++) {
cv::Vec3b rgbv(255,255,255);
if (pointcloud_RGB.size() >= i) {
rgbv = pointcloud_RGB[i];
}
}
最佳答案
你有一个差一错误。
如果 pointcloud_RGB.size() == i
,则 i
是 vector 末尾后的一个元素。
要解决此问题,只需更改您的条件:
if (pointcloud_RGB.size() >= i) {
对此:
if (pointcloud_RGB.size() > i) {
关于c++ - C++ 中 vector 下标超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31069197/