Я работаю над проектом C++ для выполнения некоторых вычислений. Я использую библиотеку boost для выполнения этих вычислений. У меня была странная ошибка (результаты были неправильными или программа зависала). Когда я проверил, что происходит, я понял, что после создания матрицы двойников и умножения матрицы на 0 (чтобы убедиться, что все равно нулю, например:Умножение матрицы на скалярный нуль
matrix<double> *A=new matrix<double>(10,100);
(*A)*=0.0;
Моя матрица не была всегда заполнена строги 0 (это внутри метода, который называется LOT, указатель удален правильно, и я проверил, что у меня нет утечек памяти), иногда отрицательные нули (-0.0) или даже NaNs! Тогда я понял, что использование метода clear() будет устанавливать все значения по умолчанию (что равно 0 для double). Так что даже если у меня есть решение, это очень странно! Как обычно, вопрос: сделал ли я что-то неправильно (скорее) или есть ли ошибка в библиотеке (менее вероятно)?
PS: Я использовать компилятор Intel (версия 2015)
Вы просто создать матрицу, вы не инициализирующий его содержание. Инициализируйте это сначала с некоторыми значениями, а затем выполните операции над ним. – madduci