Проблема вывода массива C ++ в VS2008 с OpenCV - PullRequest
0 голосов
/ 14 сентября 2011

Я делаю классификатор текстур в OpenCV и VS2008 и хочу вставить 3 двойные переменные в двойной массив, чтобы я мог вычислить ближайшие соседи массивов.

Я пытался:

double a[5]={x,y,z};

и вывод 0012FF04

такой же вывод происходит, когда я просто объявляю массив с парой чисел в нем, например double: b[2]={1.0,2.3};

И, наконец, когда я попытался объявить массив long double, он перешел в режим отладки и выдал исключение, а вывод консоли был: 0012FED4OpenCV Error:Bad flag <parameter or structure field> <Unrecognized or unsupported array type> in unknown function, file .\cxarray.cpp, line 2470.

Если кто-нибудь может мне помочь, я был бы очень благодарен.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2011

C ++ не определяет operator<<(double*), который отображает содержимое массива;Массивы C ++ не являются самоописуемыми, и я не верю, что определение такого оператора в общем полезном виде было бы возможным.Вы должны написать явный цикл:

for (int i=0; i<3; ++i)
    std::cout << brick_v[i] << " ";
std::cout << std::endl;
0 голосов
/ 14 сентября 2011

Почему бы вам не использовать std::vector<double> вместо необработанного массива, а затем вы можете вызвать push_back для вставки значений.

Если вам нужно передать его в функцию, которая принимает необработанный массивмассив или указатель, вы можете просто сделать &v[0] или для массива v[0].

Просто предложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...