C ++ 11:从向量向量访问成员函数

时间:2017-12-07 15:03:08

标签: c++11

如何从向量矢量访问此类的函数?

someNamespace::SomeClass *test; test->doSomething();

如果我想拥有同一个类的多个实例,我就是这样给出的:

std::vector< std::vector<someNamespace::SomeClass> > test; test.resize(SomeValueofSize_t);

“test”的实例数在运行时是已知的。

这就是我现在访问doSomething()的方式。

test[0][0].doSomething();

代码编译,但我不确定这是否是正确的方法

1 个答案:

答案 0 :(得分:1)

我不清楚为什么你有一个类对象的二维向量,但要做你所要求的,你应该迭代这两个维度,如@nwp建议。

假设您有一个名为someClass的对象向量test的向量,而不是指向someClass个实例的指针,即std::vector <std::vector <someNamespace::SomeClass> > test;,您只需像这样迭代它们,致电doSomething()。如果doSomething()必须修改test对象,只需删除const

for (const auto& element : test)
{
    for (const auto& obj : element)
    {
        obj.doSomething();
    }
}