我有许多动态创建的对象。这些对象是全局定义的。一个包含其他向量的向量,其中包含指向动态对象的指针
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();
不过,后来在我的代码创建一个向量来存储的类似载体Object类型*
std::vector< std::vector<Object*> > GroupCntr;
GroupCntr.push_back(cntr);
GroupCntr.push_back(cntr2);
我现在面临的是如何访问存储在存储在GroupCntr矢量对象的成员函数的问题?我曾尝试过每种组合
* -> () [] (*)
没有成功。我也意识到,我可能会因为这种代码而受到批评,因为它严重依赖于使用原始指针并带来对所有权主题的质疑。但是,我真的很想知道如何实现这个练习?
'GroupCntr [outer_index] [inner_index] - > object_member;' – Zereges
所有你需要的知道如何访问矢量的元素。而已。想一想。 – juanchopanza