首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在循环中迭代两个向量

如何在循环中迭代两个向量
EN

Stack Overflow用户
提问于 2019-04-27 09:53:44
回答 2查看 277关注 0票数 0

我试图访问for循环中两个不同向量之间的几个元素。Visual给我以下警告C26451;

算术溢出:对4字节值使用运算符“+”,然后将结果转换为8字节值。在调用运算符'+‘之前,将值转换为更大的类型,以避免溢出(io.2)。

我尝试过转换各种数据类型,但我明白我应该使用迭代器在循环中遍历向量,然而,由于我在循环中使用两个向量和每个向量的几个元素,我无法找到一种方法来正确地实现这一点。这里有两个不同的函数,我有相同的问题。

第一功能;

代码语言:javascript
运行
复制
Mat drawRails(Mat draw, vector<Point>lLines, vector<Point>rLines) {
//draw rails to the input image
    for (int j = 0; j < lLines.size() - 1; j++) {
        //draw rails - accessing point j and next point to correctly define the line
        line(draw, lLines[j], lLines[j + 1], Scalar(255, 255, 255), 4);
        line(draw, rLines[j], rLines[j + 1], Scalar(255, 255, 255), 4);
    }
    return draw;
}

第二功能;

代码语言:javascript
运行
复制
Mat drawHazardLines(Mat draw, vector<Point>lLines, vector<Point>rLines, int frameNum) {
//draw hazard lines to track
    for (int j = 0; j < lLines.size() - 1; j++) {
        //draw outwards moving rail lines - divide rail width by ten and multiply by modulo 10 of frame to achieve motion
        int railDistNext = (rLines[j + 1].x - lLines[j + 1].x) / 10 * (frameNum % 10) + 2;
        int railDist = (rLines[j].x - lLines[j].x) / 10 * (frameNum % 10) + 2;


        Point Low, High;
        Low = Point(lLines[j].x - railDist, lLines[j].y);
        High = Point(lLines[j + 1].x - railDistNext, lLines[j + 1].y);
        line(draw, Low, High, Scalar(0, 0, 255), 4);

        Low = Point(rLines[j].x + railDist, rLines[j].y);
        High = Point(rLines[j + 1].x + railDistNext, rLines[j + 1].y);
        line(draw, Low, High, Scalar(0, 0, 255), 4);
    }
    return draw;
}

但是,代码工作正常,但会产生上述错误,我想要解决这些错误。

EN

回答 2

Stack Overflow用户

发布于 2019-04-27 10:09:03

此错误意味着有从longint的转换。从您提供的代码中很难看出错误在哪里,但我建议将代码中的int更改为long

票数 2
EN

Stack Overflow用户

发布于 2019-04-27 10:05:34

代码语言:javascript
运行
复制
for(auto lIter = lLines.begin(), rIter = rLines.begin(); liter != lLines.end(); ++lIter, ++rIter)
{
   ... 
}

当然,您需要确保rLines至少有和lLines一样多的项目.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55879295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档