Есть такой код:
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];
"По-моему, так" (с) Пух"
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости