我有一个名为myImage的cv::Mat,我想保存到一个名为savedVec的std::vector>中。这是我编写的代码:

for (int i = 0; i < myImage.rows; ++i)
{
    std::vector<int> row(myImage.cols);
    for (int j = 0; j < myImage.cols; ++j)
    {
        row.push_back(Play::getInstance()->getFinder()->getImage().at<uchar>(i, j));
    }
    savedVec.push_back(row);
}

我现在的问题是savedVec[0].size()产生的大小是myImage.cols的两倍,但是由于它们应该相同,不是吗?
请告诉我我做错了。

最佳答案

根据c++ reference的调用,push_back将元素追加到 vector ,因此从头开始增加大小
因此您的大小至少为2*cols。您应该初始化一个空 vector 。或使用[]运算符。

07-26 09:35
查看更多