如何从 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 函数修改。