在第一种情况下,您正在定义一个MyClass指针数组。
情况1:
class MyClass {
public:
std::vector<MyClass *> Container;
};
在这种情况下,所述的sizeof(容器)会的sizeof(MyClass的*)(指针的大小)矢量的X长度。与矢量本身相同。 你会访问变量是这样的...
// ChildContainer is a vector
ChildContainer = myInstance->Container[i]->Container;
在第二种情况下,要定义一个指针指向类实例的数组(其本身也已经指针,反正)。这里,sizeof(Container)将是指针的大小。矢量本身将是sizeof(MyClass)(实例指针!)X矢量的长度。
案例2:
class MyClass {
public:
std::vector<MyClass> * Container;
};
你会像这样访问的变量...
// ChildContainer is a pointer to a vector
ChildContainer = myInstance->(*Container)[i]->Container;
如果MyClass的实际上是一个结构,访问可能会有所不同,因为结构不通过指针默认。
情况1:
struct MyClass {
public:
std::vector<MyClass*> Container;
};
使用:
// ChildContainer is a vector
ChildContainer = myInstance.Container[i]->Container;
情况2:
struct MyClass {
public:
std::vector<MyClass> * Container;
};
使用:
// ChildContainer is a pointer to a vector
ChildContainer = myInstance.(*Container)[i].Container;
首先是点的矢量发给MyClass。其次是'MyClass'实例向量的指针。 – iehrlich
'std :: vector容器;'这是一个向量,它包含一个指向'MyClass'元素的指针列表......'std :: vector * Container;'这是一个指向包含'MyClass'的向量的指针元素。 –
ZeldaZach
@mike bayko向量中有多少个指针可以指向一个对象?也许你是指std :: vector类型的静态数据成员? –