Форум программистов, компьютерный форум CyberForum.ru

Двумерный массив векторов. Объявить и заполнить. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
22.12.2011, 15:40     Двумерный массив векторов. Объявить и заполнить. #1
как правильно объявлять и заполнять двумерный массив вектор в классах?

C++
1
2
3
4
5
6
7
8
9
10
11
12
struct Map
{
     Map()
     {
         vMap.resize(MAX_Y, vector<char>(MAX_X));
         for(int i=0; i<vMap.size(); ++i)
             vMap[i].push_back("OOOOOOOOOOOOOOOOOOOO");
     }
 
private:
     vector<vector<char>> vMap;
};
C++
1
2
error C2664: std::vector<_Ty>::push_back: невозможно преобразовать параметр 1 из 'const char [80]' в 'const char &'
Причина: невозможно преобразовать 'const char [80]' в 'const char'.
Добавлено через 2 часа 3 минуты
bump!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2011, 15:40     Двумерный массив векторов. Объявить и заполнить.
Посмотрите здесь:

C++ динамический двумерный массив (заполнить двумерный массив неизвестной длины) C++
C++ Объявить массив целых чисел и заполнить его случайными значениями.
C++ Почему нельзя так объявить двумерный массив?
C++ Объявить массив целых чисел и заполнить его случайными значениями
Объявить статический массив размерности 20. Заполнить его «случайным образом»... C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
22.12.2011, 18:17     Двумерный массив векторов. Объявить и заполнить. #2
ты пытаешся в символ запихать строку.
Если тебе надо матрица строк, то обьяви std::vector< std::vector< std::string> > vMap;
Иначе измени vMap[i].push_back("OOOOOOOOOOOOOOOOOOOO"); на vMap[i].push_back('O');
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
22.12.2011, 20:36  [ТС]     Двумерный массив векторов. Объявить и заполнить. #3
Цитата Сообщение от Melkor Посмотреть сообщение
ты пытаешся в символ запихать строку.
Так и нужно! Не строка, а массив символов
C++
1
const char[max_y][max_x] = ...
в виде вектора
Melkor
30 / 30 / 1
Регистрация: 15.12.2011
Сообщений: 108
26.12.2011, 13:58     Двумерный массив векторов. Объявить и заполнить. #4
Цитата Сообщение от res Посмотреть сообщение
Так и нужно! Не строка, а массив символов
Код C++
1
const char[max_y][max_x] = ...
в виде вектора
тогда так:
C++
1
2
3
4
5
6
7
8
9
10
struct Map
{
     Map()
     {
         vMap.resize(MAX_Y, vector<char>(MAX_X, 'o'));
     }
 
private:
     vector<vector<char>> vMap;
};
Yandex
Объявления
26.12.2011, 13:58     Двумерный массив векторов. Объявить и заполнить.
Ответ Создать тему
Опции темы

Текущее время: 19:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru