Как использовать «вектор вектора»? - PullRequest
1 голос
/ 15 июня 2010

Я уже искал его в Интернете, но не получил удовлетворительных результатов.

Я хочу создать что-то вроде

vector< vector<int*> > test_vector;

Как мне заполнить этот вектор вектора? Как получить доступ к его членам? Может быть, кто-нибудь знает несколько хороших учебников в Интернете?

С уважением Mikey

Ответы [ 4 ]

3 голосов
/ 15 июня 2010

Просто помните, что каждый элемент test_vector имеет тип vector<int*>. Вы должны заполнить test_vector, заполнив каждый элемент вектора.

Вы можете получить к нему доступ, как и к любому многомерному массиву. См:

int *p = test_vector[0][0];

Или:

int *p = test_vector.at(0).at(0);
1 голос
/ 15 июня 2010

Вы заполняете вектор векторов, помещая в него векторы.

Вы получаете доступ к его членам так же, как и к любому другому вектору.

1 голос
/ 15 июня 2010

PS Если вы хотите использовать какую-то матрицу, я бы предпочел использовать только одномерный вектор и отобразить доступ (из-за производительности).

Например, матрица M с m строками и n столбцами: вы можете сопоставить вызов

M [i] [j] = x с M [i * n + j] = x.

1 голос
/ 15 июня 2010

Вопрос, похожий на ваш, был размещен на DreamInCode: http://www.dreamincode.net/forums/topic/37527-vector-of-vectors/

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