【问题标题】:How to read const &vector<Mat> data type from EM::getCov(&vector<Mat>) for c++如何从 C++ 的 EM::getCov(&vector<Mat>) 读取 const &vector<Mat> 数据类型
【发布时间】:2016-04-07 01:58:52
【问题描述】:

我正在尝试获取此函数的结果:

C++:

void EM::getCovs(std::vector<Mat>& covs) const

我的问题是如何获得covs?我不断收到编译错误。这是我的代码。

const vector<Mat> &covs;
model->getCovs(covs);

我收到错误提示

引用变量“covs”的声明需要一个初始化器。

(1) 这是从getCovs获取数据的正确方法,或者

(2) 我需要像显示的错误一样初始化“covs”。

【问题讨论】:

    标签: c++ opencv3.0 expectation-maximization


    【解决方案1】:

    只需将其声明为vector&lt;Mat&gt; covs;。你想要一个真正的向量,而不是一个引用,来传递给函数。而且你不希望它是 const 因为你希望函数写入它。

    【讨论】:

      【解决方案2】:

      参数列表void getCovs(std::vector&amp; covs) 中的&amp; 表示您将引用传递到现有向量。

      您应该为向量声明本地存储:

      vector<Mat> covs;
      

      然后你可以将它的引用传递给getCovs

      model->getCovs(covs);
      

      你写的(vector&lt;Mat&gt;&amp; covs;)是一个引用另一个向量的局部变量;但是您还没有提供另一个向量供它参考。 const 也阻止它被修改,但您希望它被 getCovs 函数修改。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-27
        相关资源
        最近更新 更多