@gth-other

Как дополнить двумерную матрицу нулями по краям?

Есть матрица размером w0 h0 (в памяти хранится как вектор целочисленных векторов). Надо слева и справа добавить w1 нулей, а снизу и сверху - h1.

Пример

w0 = 2
h0 = 3
w1 = 1
h1 = 2

Было:
7 8
3 4
9 1

Стало:
0 0 0 0
0 0 0 0
0 7 8 0
0 3 4 0
0 9 1 0
0 0 0 0
0 0 0 0

  • Вопрос задан
  • 320 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Сначала каждую строку resize до размера size()+w0+w1. Потом сдвигайте элементы на w0 позиций вправо (цикл надо гнать с конца). Потом заполните пустые места нулями.

То же самое в самом векторе векторов. Только вместо чисел надо сдвигать вектора на h0 позиций. На пустые места надо будет записывать std::vector(n+w0+w1, 0);

Edit: А вообще, тут и добавлять в массив ничего не надо. Вы нужный вам ответ можете нулями прямо во время вывода добить.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы