Двумерный массив на основе valarray
подскажите как сделать двумерный массив с помощью valarray. Можно ли это сделать без слайсов,чтобы можно было обращаться к нему с помощью индексов.
Если можно,то что мне нужно поменять в моём коде,чтоб он работал и я мог в будущем обращаться к двумерному массиву за счёт индексов?=)
#include <iostream>
#include <clocale>
#include <ctime>
#include <valarray>
using namespace std;
int main()
{
setlocale(LC_ALL, "ru");
srand(time(NULL));
int rows = 0; int columns = 0; int i = 0; int j = 0;
valarray<valarray<double>>M;
cout << "Введите размерность массива! " << endl;
cout << "Введите кол-во строк: "; cin >> rows;
cout << "Введите кол-во столбцов: "; cin >> columns;
cout << "\n\tMatrix: " << endl;
for (size_t i = 0; i < rows; ++i)
{
for (size_t j = 0; j < columns; ++j)
{
M[i][j] = rand() % 10 - 5;
cout << "\t" << M[i][j];
}
cout << endl;
}
cout << endl;
cout << "\n Press any key ... " << endl;
system("PAUSE");
return 0;
}
Ответы (1 шт):
Автор решения: goldstar_labs
→ Ссылка
....
cout << "Введите кол-во столбцов: "; cin >> columns;
M.resize(rows); // Задаём количество строк
for (auto& it : M)
{
it.resize(columns); // Для каждой строки задаём размер столбца
}
cout << "\n\tMatrix: " << endl;
...