我试图得到这个函数的结果:
C++:
void EM::getCovs(std::vector<Mat>& covs) const
我的问题是如何获得covs
?我不断收到编译错误。这是我的代码。
const vector<Mat> &covs;
model->getCovs(covs);
我得到错误说
引用变量“covs”的声明需要一个初始化器。
(1) 这是从 getCovs 获取数据的正确方法,或者
(2) 我需要像错误所示那样初始化“covs”。
我试图得到这个函数的结果:
C++:
void EM::getCovs(std::vector<Mat>& covs) const
我的问题是如何获得covs
?我不断收到编译错误。这是我的代码。
const vector<Mat> &covs;
model->getCovs(covs);
我得到错误说
引用变量“covs”的声明需要一个初始化器。
(1) 这是从 getCovs 获取数据的正确方法,或者
(2) 我需要像错误所示那样初始化“covs”。
&
参数列表中的表示void getCovs(std::vector& covs)
您传递对现有向量的引用。
您应该为向量声明本地存储:
vector<Mat> covs;
然后你可以将它的引用传递给getCovs
:
model->getCovs(covs);
你写的 ( vector<Mat>& covs;
) 是一个引用另一个向量的局部变量;但是您还没有提供另一个向量供它参考。也可以防止它const
被修改,但您希望它被 getCovs 函数修改。
只需将其声明为vector<Mat> covs;
. 你想要一个真正的向量,而不是一个引用,来传递给函数。而且您不希望它是 const 因为您希望函数写入其中。