opencv3.0 — Как читать const & vector & lt; Mat & gt; тип данных из EM :: getCov (& vector & lt; Mat & gt;) для переполнения стека

Я пытаюсь получить результат этой функции:

C ++:

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

Мой вопрос, как получить covs? Я продолжал получать ошибку компиляции. Вот мой код

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

Я получил ошибку сказал

Объявление ссылочной переменной ‘covs’ требует инициализатора.

(1) Это правильный способ получения данных из getCovs, или

(2) Мне нужно инициализировать ‘covs’, как показано в сообщении об ошибке.

-1

Решение

& в списке параметров void getCovs(std::vector& covs) означает, что ты передать ссылку к существующему вектору.

Вы должны объявить локальное хранилище для вектора:

vector<Mat> covs;

тогда вы можете передать ссылку на него в getCovs:

model->getCovs(covs);

Что ты написал (vector<Mat>& covs;) является локальной переменной, которая ссылается на другой вектор; однако вы не предоставили другой вектор для ссылки. const также предотвращает его изменение, но вы хотите, чтобы он был изменен функцией getCovs.

1

Другие решения

Просто объявите это как vector<Mat> covs;, Вы хотите, чтобы реальный вектор, а не ссылка, передавался в функцию. И вы не хотите, чтобы он был константным, потому что вы хотите, чтобы функция записывала в него.

0

По вопросам рекламы [email protected]