need[i][j] = max[i][j] - alloc[i][j];
Это не работает, потому что вы не выделили память для need
.
need.push_back(max[i][j] - alloc[i][j]);
Это также не работает, потому что need
является вектором вектора, поэтому push_back
ожидает вектор, а вы задаете ему одно значение.
Я предполагаю, что вам нужно что-то вроде этого:
need.resize(n);
for (int i = 0; i < n; i++)
{
cout << i << ": ";
for (int j = 0; j < m; j++)
{
need[i].push_back(max[i][j] - alloc[i][j]);
}
cout << endl;
}
cout << endl;
Однако вам было бы лучше не используя векторы векторов, а вместо этого используя векторы значений n*m
. Таким образом, вы можете сделать это:
for (int i = 0; i < n; i++)
{
cout << i << ": ";
for (int j = 0; j < m; j++)
{
need.push_back(max[i*m+j] - alloc[i*m+j]);
}
cout << endl;
}
cout << endl;
Или это:
need.resize(n*m);
for (int i = 0; i < n; i++)
{
cout << i << ": ";
for (int j = 0; j < m; j++)
{
need[i*m+j] = max[i*m+j] - alloc[i*m+j];
}
cout << endl;
}
cout << endl;