如何从 C++ 的 EM::getCov(&vector<Mat>) 中读取 const &vector<Mat> 数据类型
How to read const &vector<Mat> data type from EM::getCov(&vector<Mat>) for c++
我正在尝试获取此函数的结果:
C++:
void EM::getCovs(std::vector<Mat>& covs) const
我的问题是如何获得covs
?我不断收到编译错误。这是我的代码。
const vector<Mat> &covs;
model->getCovs(covs);
我收到错误提示
Declaration of reference variable 'covs' requires an initializer.
(1) 这是从 getCovs 获取数据的正确方法,或者
(2) 我需要像错误显示的那样初始化 'covs'。
声明为vector<Mat> covs;
即可。你想要一个真正的向量,而不是一个引用,传递给函数。而且您不希望它是 const,因为您希望函数写入它。
参数列表void getCovs(std::vector& covs)
中的&
表示您将引用传递给现有向量。
您应该为向量声明本地存储:
vector<Mat> covs;
然后您可以将对它的引用传递给 getCovs
:
model->getCovs(covs);
你写的(vector<Mat>& covs;
)是引用了另一个vector的局部变量;但是您没有提供另一个向量供其参考。 const
也阻止它被修改,但是你希望它被 getCovs 函数修改。
我正在尝试获取此函数的结果:
C++:
void EM::getCovs(std::vector<Mat>& covs) const
我的问题是如何获得covs
?我不断收到编译错误。这是我的代码。
const vector<Mat> &covs;
model->getCovs(covs);
我收到错误提示
Declaration of reference variable 'covs' requires an initializer.
(1) 这是从 getCovs 获取数据的正确方法,或者
(2) 我需要像错误显示的那样初始化 'covs'。
声明为vector<Mat> covs;
即可。你想要一个真正的向量,而不是一个引用,传递给函数。而且您不希望它是 const,因为您希望函数写入它。
参数列表void getCovs(std::vector& covs)
中的&
表示您将引用传递给现有向量。
您应该为向量声明本地存储:
vector<Mat> covs;
然后您可以将对它的引用传递给 getCovs
:
model->getCovs(covs);
你写的(vector<Mat>& covs;
)是引用了另一个vector的局部变量;但是您没有提供另一个向量供其参考。 const
也阻止它被修改,但是你希望它被 getCovs 函数修改。