3D векторный конструктор C ++ - PullRequest
       6

3D векторный конструктор C ++

0 голосов
/ 07 октября 2011

Для двумерного вектора я знаю, что могу пойти:

vector<vector<T>> vec;
vec = vector<vector<T>> (boardSize, vector<T>(boardSize));

Но как мне сделать это для трехмерного вектора?

Я пытался

vector<vector<vector<T>>> vec;
vec = vector<vector<vector<T>>> (boardSize, boardSize, vector<T>(boardSize));

Но это не скомпилируется. Есть идеи?

Ответы [ 2 ]

5 голосов
/ 07 октября 2011

Просто предположение:

vec = vector<vector<vector<T>>> (boardSize, vector<vector<T>>(boardSize, vector<T>(boardSize)));

Это означает, что когда вы объявили vector<vector<T>>, второй аргумент должен быть vector<T>; и когда вы объявили vector<vector<vector<T>>>, второй аргумент должен быть vector<vector<T>>, который, в свою очередь, должен быть таким же, как в первом случае.

0 голосов
/ 07 октября 2011

Наверное, лучше всего не делать этого.Создайте класс, который предлагает интерфейс трехмерного вектора (с некоторые изменения ) и внутренне использует вектор одного измерения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...