@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

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

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

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

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

Войти через центр авторизации
Похожие вопросы