Есть такой код:
auto Karrr =make_shared<vector<vector<vector<int>>>>(size1, vector<vector<int>>(size2, vector<int>(size3)));
Он создает многомерный массив.
Вот так вызвать:
(*Karrr)[1][1][1];
Я бы хотел сделать его создание как-то удобней.
Например так:
auto arr2 = make_shared2(size,size2,size3);
Ещё изменить (*Karrr)
, на просто Karrr
, если это возможно.
Ну, если хотите - то можно написать свою функцию. Например,
shared_ptr<vector<vector<vector<int>>>> make_shared2(size_t s1, size_t s2, size_t s3)
{
return make_shared<vector<vector<vector<int>>>>(s1,
vector<vector<int>>(s2, vector<int>(s3)));
}
после чего вызывать ее именно так, как написали:
auto arr2 = make_shared2(size,size2,size3);
Чтобы не тягать за собой *
, можно воспользоваться, например, ссылкой:
vector<vector<vector<int>>>& arr = *arr2;
и работать как с обычным массивом
arr[i][j][k];
"По-моему, так" (с) Пух"
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня есть вопрос, касающийся инициализации атомарных объектов
Вроде простейшая задача, но какая-то фигняСам код: