Не могу получить доступ к элементу карты указатель-вектор, - PullRequest
2 голосов
/ 27 октября 2011

в мой личный раздел у меня есть:

vector<  vector<map<unsigned short int,col_data> > *> buffer_vectorS;
vector< map<unsigned short int,col_data> > * buffer_current;
map<unsigned short int,col_data> buffer_current_map;

(coldata - простая структура: int, int, int, double)

Позже я создаю вектор данных карты и сохраняю его указатель

vector<map<unsigned short int,col_data> > * buffer_vector = new vector<map<unsigned short int,col_data> >;
buffer_vectorS.push_back(buffer_vector);
buffer_current = buffer_vector;

Позже я бы хотел использовать элемент карты buffer_current для получения и хранения данных,

buffer_current_map = &buffer_current[index];

Но этот последний не компилируется .... Я не знаю, как это написать ... Как я могу получить доступ к элементу buffer_current? Вы можете мне помочь?

1 Ответ

1 голос
/ 27 октября 2011

Вы имеете в виду:

buffer_current_map = (*buffer_vector)[index];

Имейте в виду, что при выполнении операции копирования на карте.Возможно, вы захотите получить доступ к карте, используя семантику указателя:

map<unsigned short int,col_data> *buffer_current_map;
buffer_current_map = &(*buffer_vector)[index];

Тогда копия не будет сделана.Хотя указатель может быть признан недействительным, если изменение размера выполняется для вектора.

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