-1

この関数の結果を取得しようとしています:

C++:

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

私の質問は、covs?を取得する方法です。コンパイルエラーが発生し続けました。これが私のコードです。

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

エラーが表示されます

参照変数 'c​​ovs' の宣言には初期化子が必要です。

(1) これが getCovs からデータを取得する正しい方法です。または

(2) エラーが示したように「covs」を初期化する必要があります。

4

2 に答える 2

1

&パラメーター リストのは、既存のベクターへの参照を渡すvoid getCovs(std::vector& covs)ことを意味します。

ベクトルのローカル ストレージを宣言する必要があります。

vector<Mat> covs;

次に、それへの参照をに渡すことができますgetCovs

model->getCovs(covs);

あなたが書いたもの ( vector<Mat>& covs;) は、別のベクトルを参照するローカル変数です。ただし、参照する別のベクトルを提供していません。またconst、変更できないようにしますが、getCovs 関数で変更する必要があります。

于 2016-01-03T08:03:51.627 に答える
0

として宣言するだけvector<Mat> covs;です。関数に渡すには、参照ではなく実数のベクトルが必要です。そして、関数に書き込みたいので、それを const にしたくありません。

于 2016-01-03T08:03:16.927 に答える