В настоящее время я работаю над текстовой игрой на линкоре и переключаю свой контейнер, который я использую для хранения доски, с двумерного массива символов на двумерный вектор.В приведенном ниже коде я инициализирую всю доску и для начала устанавливаю все символы в ней как пустые места.Далее следует весь мой код для создания доски и т. Д.
const int width = 100;
const int height = 35;
vector< vector<char> > buffer(width, vector<char>(height,0));
for (int y = 0; y < height; ++y)
for (int x = 0; x < width; ++x)
buffer[x][y] = ' ';
Когда я собираюсь вывести доску на экран, я пытаюсь использовать итераторы, которые предусмотрены для векторов.Единственная проблема, с которой я столкнулся, заключается в том, что при использовании итератора он игнорирует пробелы в моем векторе, поэтому игровая доска выглядит не так, как должна.Просто используя удвоенный цикл for для итерации по вектору, вывод будет нормальным.
vector<vector<char> >::const_iterator row;
vector<char>::const_iterator col;
for (row = buffer.begin(); row != buffer.end(); row++) {
for (col = row->begin(); col != row->end(); col++) {
cout << *col;
}
cout << endl;
}
Это первый раз, когда я пытаюсь использовать векторы, поэтому я в замешательстве.Кто-нибудь знает, почему он будет игнорировать пустые символы?