C ++: Как сделать конструктор для многомерного вектора? - PullRequest
2 голосов
/ 21 февраля 2010

Я хочу создать двух- и трехмерные векторы, используя конструктор в классе. Тем не менее, я не знаю, как для многомерных векторов.

Одномерные работы:

class One{
    public:
        vector < float > myvector;

        One(int length) : myvector(length){}

};

Двумерный не работает:

class Two{
    public:
        vector < vector < float > > myvector;

        Two(int length, int width) : myvector(length)(width) {}

};

Трехмерное тоже не работает:

class Three{
    public:
        vector < vector < vector < float > > > myvector;

        Three(int length, int width, int height) : myvector(length)(width)(height) {}

};

Ответ ниже работает для двумерного вектора. Я ожидал бы следующий код для трехмерного, однако он кажется неправильным

class Three{
    public:
        vector < vector <  vector < float > > > myvector;

        Three(int length, int width, int height) : myvector(length, vector<float>(width, vector<float>(height))) {}

};

1 Ответ

13 голосов
/ 21 февраля 2010

Для двумерного случая должно быть:

Two(int length, int width) : myvector(length, std::vector<float>(width)) {}

Я позволю вам выяснить третий случай самостоятельно.

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