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

Как правильно проинициализировать массив вручную? - C++

Восстановить пароль Регистрация
 
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
25.04.2010, 18:22     Как правильно проинициализировать массив вручную? #1
Здрасти.
как правильно проинициализировать массив в ручную? а то у меня ошибка main.cpp|60|error: expected primary-expression before '{' token|

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
std::string capitalDigit(int& number){
    const int ROWS=10;
    const int COLS=10;
    std::vector< std::vector<std::string> > digits(ROWS, std::vector<std::string>(COLS));
    digits[ROWS][COLS] = {
        {"qwe","erw","qwe","erw","qwe","erw","qwe","erw","qwe","erw"},
        {"qwe","erw","qwe","erw","qwe","erw","qwe","erw","qwe","erw"},
        {"qwe","erw","qwe","erw","qwe","erw","qwe","erw","qwe","erw"},
        {"qwe","erw","qwe","erw","qwe","erw","qwe","erw","qwe","erw"},
        {"qwe","erw","qwe","erw","qwe","erw","qwe","erw","qwe","erw"},
        {"qwe","erw","qwe","erw","qwe","erw","qwe","erw","qwe","erw"},
        {"qwe","erw","qwe","erw","qwe","erw","qwe","erw","qwe","erw"},
        {"qwe","erw","qwe","erw","qwe","erw","qwe","erw","qwe","erw"},
        {"qwe","erw","qwe","erw","qwe","erw","qwe","erw","qwe","erw"},
        {"qwe","erw","qwe","erw","qwe","erw","qwe","erw","qwe","erw"}
    };
 
}
Добавлено через 3 часа 37 минут
а так инициализировать контейнеры вообще можно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
25.04.2010, 18:41     Как правильно проинициализировать массив вручную? #2
а так инициализировать контейнеры вообще можно?
В новом стандарте будет можно(не совсем так естественно), в текущем нет.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
25.04.2010, 19:10  [ТС]     Как правильно проинициализировать массив вручную? #3
а как мне проинициализировать массив тогда?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
26.04.2010, 06:10     Как правильно проинициализировать массив вручную? #4
В цикле каждый элемент.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
26.04.2010, 08:49  [ТС]     Как правильно проинициализировать массив вручную? #5
Цитата Сообщение от kazak Посмотреть сообщение
В цикле каждый элемент
это вариант здесь не подходит, мне же надо определенными словами его заполнитиь
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
26.04.2010, 09:13     Как правильно проинициализировать массив вручную? #6
PointsEqual, создай обыкновенный двухмерный массив, а потом его скопируй.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
...
char *arr[ROWS][COLS] = {
  { "bla", "bla", "bla" },
  { "bla", "bla", "bla" },
};
std::vector<std::vector<std::string> > vec(ROWS, std::vector<std::string> ());
for ( int i = 0; i < ROWS; ++i )
  std::copy(arr[i], arr[i] + COLS, std::inserter(vec[i], vec[i].begin()));
...
как-то так, не проверял...

Добавлено через 2 минуты
Вот только может есть смысл его просто двухмерным массивом и оставить?
Динамический массив хорош в первую очередь тем, что может динамически менять размер. А когда не желательно менять не то, чтобы размер, но и содержимое, так лучше по-моему создать массив константных значений...
Yandex
Объявления
26.04.2010, 09:13     Как правильно проинициализировать массив вручную?
Ответ Создать тему
Опции темы

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