powered by simpleCommunicator - 2.0.28     © 2024 Programmizd 02
Map
Форумы / C++ [игнор отключен] [закрыт для гостей] / помогите инициализировать двухмерный массив
17 сообщений из 17, страница 1 из 1
помогите инициализировать двухмерный массив
    #40071665
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему закоменченный код не рабочий, тогда как подобный код только с примитивным типом рабочий ?




Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
#include <iostream>
#include <memory>
#include <vector>
constexpr int X = 6; // row qty
constexpr int Y = 5; // column qty

struct prasetoReplace {
	std::wstring find;
	std::wstring replace;
};

// это не рабочий код:

/*
const std::array <std::array<prasetoReplace, X>, Y> aaa =
{
    {L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"}
    {L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},
    {L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},
    {L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},
    {L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},
    {L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"}
 }; */
 // А это рабочий код , всего лишь тип данных проще(int вместо prasetoReplace) :
const std::array <std::array<int, X>, Y> INT0 = { 
    5,7,3,1,1,
    5,7,3,1,1,
    5,7,3,1,1,
    5,7,3,1,1,
    5,7,3,1,1,
    5,7,3,1,1
};



int main()
{
    
    return 0;
}
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071679
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

"," не хватает в конце первой строки
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071681
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,

согласен, очепятка. но проблему не решило :(
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071683
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может, стоит текст сообщения об ошибке прочитать?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071687
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,


да читал: слишком много инициализоторов для const std::array<std::array<prasetoReplace, 6>, 5>

а почему много то ??? 6 строк, 5 столбцов. Да и для инта ж работает.
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071688
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты в array из пяти элементов пытаешься всунуть 30 массивов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071694
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Ты в array из пяти элементов пытаешься всунуть 30 массивов.



так что ли надо ? )))
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
const std::array <std::array<prasetoReplace, X>, Y> aaa =
{
    (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"),
    (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"),
    (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"),
    (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"),
    (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"),
    (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку"), (L"1 ракушек", L"1 ракушку")
 };
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071696
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

Там просто больше скобочек надо чем вы думаете, потому что инициализируется внутренний массив в std::array. Поэтому надо на каждом уровне вложенности std::array добавлять скобки.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
struct S
{
    std::string a;
    std::string b;
};

const std::array<std::array<S, 2>, 2> aaa = {
  {
    {
      {
        {"", ""},
        {"", ""},
      }
    },
    {
      {
        {"", ""},
        {"", ""},
      }
    }
  }
};



Либо не извращаться и перечислить все в одном плоском инициализаторе:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
struct S
{
    std::string a;
    std::string b;
};

const std::array<std::array<S, 2>, 2> aaa = {"", "", "", "", "", "", "", ""};
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071697
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
andron81,

Там просто больше скобочек надо чем вы думаете, потому что инициализируется внутренний массив в std::array. Поэтому надо на каждом уровне вложенности std::array добавлять скобки.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
struct S
{
    std::string a;
    std::string b;
};

const std::array<std::array<S, 2>, 2> aaa = {
  {
    {
      {
        {"", ""},
        {"", ""},
      }
    },
    {
      {
        {"", ""},
        {"", ""},
      }
    }
  }
};



Либо не извращаться и перечислить все в одном плоском инициализаторе:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
struct S
{
    std::string a;
    std::string b;
};

const std::array<std::array<S, 2>, 2> aaa = {"", "", "", "", "", "", "", ""};



а как второй вариант понять ?

вот есть 2 элемента {L"элемент1", L"Элемент10"} и {L"элемент2", L"Элемент20"}

как их вставить ?
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071698
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

Все через запятую без {}.
{} только вокруг всего списка.
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071701
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,

так каждый ведь элемент это структура . каждый элемент тоже не обрамляет фигурными ???
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071704
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

{} не обязательны. Но если их ставить они должны соответствовать структуре всех уровней вложенности, а не только нижнего уровня.
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071705
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
andron81,

{} не обязательны. Но если их ставить они должны соответствовать структуре всех уровней вложенности, а не только нижнего уровня.


не обязательны? то есть могу поставить ??? вот я и поставил в первом посте. обратив каждый элемент в фигурные скобки. видимо обязательно не ставить !
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071751
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81вот я и поставил в первом посте. обратив каждый элемент в фигурные скобки.

Не каждый. Ты обернул два вложенных элемента из трёх. И именно в этом твоя ошибка. О чём
уже было сказано выше.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071753
а constexpr при инициализации обычного инта точно нужен?
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071762
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

andron81вот я и поставил в первом посте. обратив каждый элемент в фигурные скобки.

Не каждый. Ты обернул два вложенных элемента из трёх. И именно в этом твоя ошибка. О чём
уже было сказано выше.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
/*
const std::array <std::array<prasetoReplace, X>, Y> aaa =
{
    {L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},
    {L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},
    {L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},
    {L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},
    {L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},
    {L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"},{L"1 ракушек", L"1 ракушку"}
 }; */



какие я обернул 2 элемента из 3 х ?
...
Рейтинг: 0 / 0
помогите инициализировать двухмерный массив
    #40071763
две скобки { открыты
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / помогите инициализировать двухмерный массив
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]