У меня есть несколько объектов, которые я создаю динамически. Эти объекты определены глобально.Вектор, который содержит другие векторы, содержащие указатели на динамические объекты
Object *obj1 = new Object;
Object *obj2 = new Object;
Object *obj3 = new Object;
У меня также есть вектор, который будет хранить все эти объекты.
std::vector<Object*> cntr;
cntr.push_back(obj1);
cntr.push_back(obj2);
cntr.push_back(obj3);
Я создаю несколько других векторов точно так же, как и выше, и заполняю их аналогичными объектами.
std::vector<Object*> cntr2;
std::vector<Object*> cntr3;
Если я хочу, чтобы получить доступ к любой из функций членов любой из этих объектов я могу просто написать это:
cntr[i]->memberFunction();
cntr2[i]->memberFunction();
Однако позже в моем коде я создаю вектор для хранения подобных векторов Тип объекта *
std::vector< std::vector<Object*> > GroupCntr;
GroupCntr.push_back(cntr);
GroupCntr.push_back(cntr2);
проблема теперь я столкнулся с, как получить доступ к функциям членам объектов, хранящихся в векторах, которые хранятся в GroupCntr? Я пробовал каждую комбинацию
* -> () [] (*)
не имеет успеха. Я также знаю, что меня могут критиковать за такой код, поскольку он в значительной степени опирается на использование исходных указателей и ставит под вопрос предмет владения. Однако я действительно хотел бы знать, как это упражнение может быть достигнуто?
'GroupCntr [outer_index] [inner_index] -> object_member;' – Zereges
Все, что вам нужно знать, как получить доступ к элементу вектора. Вот и все. Подумайте об этом немного. – juanchopanza