2016-12-21 3 views
-3

у меня есть 2D вектор вектор символов grid[j][i], заполненных различными буквами, я хотел бы создать еще один 2D вектор символов в два раза размер grid[j][i] заполнены поочередно с точками '.' (или пространств ' ') и grid[j][i] значений.C++ Наполните 2D вектор с альтернативными значениями

Например:

 grid     new 2D vector  

    a b c d     a . b . c . d   
    e f g h     . . . . . . . 
    i j k l     e . f . g . h 
           . . . . . . . 
           i . j . k . l 

Кто-нибудь есть идеи о том, как реализовать это в C++ с использованием векторов?

Заранее благодарим за любую помощь, которую вы могли бы предоставить.

+0

Просмотрите [справочную страницу] (http://stackoverflow.com/help) о дозах и дозах. –

+0

Покажите нам, что вы пробовали, с чем вы сталкиваетесь? –

ответ

3

Легко ли право? Если номер строки или столбца кратен 2 (подсчет на основе 1), то вы хотите вставить . или ' '.

Вот некоторые псевдо-код:

for each row 
    if (row+1 mod 2) 
     add a row of . 
    else 
     for each column 
      if (col+1 mod 2) 
       add . 
      add grid[row][col] 

и вы сделали!

+0

Обратите внимание, что порядок циклов --- строка, столбец --- не самая лучшая практика, так как C/C++ является строковым. – Richard

+1

@ Richard Можете ли вы уточнить? В 2D-векторе в C++ порядок строк/столбцов может быть тем, что я выбираю? –

+0

@Richard Согласно [этой записи в Википедии] (https://en.wikipedia.org/wiki/Row-_and_column-major_order) и [этот вопрос] (http://stackoverflow.com/questions/33722520/why-is -iterating-2d-array-row-major-faster-than-column-major), это правильный порядок итерации для целей скорости. –

Смежные вопросы