Итак, я наткнулся на упражнение по книге C ++ под названием - «Руководство по науке c Вычисления на C ++»
Вот упражнение: «Написать код который динамически выделяет память для трех матриц 2 × 2 с номерами плавающих точек двойной точности, A, B, C, и присваивает значения записям A и B. Пусть C = A + B. Расширьте свой код так, чтобы он вычисляет записи C, а затем выводит записи C на экран. Наконец, освободите память. Опять же, проверьте, правильно ли вы освободили память, используя a для l oop, как в предыдущем упражнение. "
Это привлекло мое внимание, я попытался решить эту задачу, используя как 2D-массивы (мне удалось это сделать очень легко), так и вектор векторов (я потерпел неудачу).
Я провел много исследований и прочитал пост на StackOverFlow, и в целом мнение было универсальным - при работе с матрицами всегда выбираются 2D-массивы.
Но зная, что здесь много программистов ( а и что я новичок ie с C ++), я бы очень хотел прочитать больше мнений об этом топи c!
PS: Вот небольшой фрагмент моей неудачной попытки создать матрицу с использованием вектора векторов:
for (int row{ 0 }; row < 2; row++) { // Create Matrix A - goes through the matrix rows
for (int col{ 0 }; col < 2; col++) { // goes through the matrix columns
temp.push_back(rand() % 201); // add random number to the temporary vector
}
matrixA.push_back(temp);
}
// Outputing
for (int row{ 0 }; row < matrixA.size(); row++) { // goes through the matrix rows
for (int col{ 0 }; col < matrixA.at(row).size(); col++) { // goes through the vectors inside matrixA
cout << matrixA.at(row).at(col) << "\t";
}
cout << endl;
}
Это результат: введите описание изображения здесь