有关结构矢量数组的问题

时间:2010-09-23 10:57:10

标签: c++ arrays vector

昨天我发了一篇关于这个的帖子,但这是一个完全不同的问题。不确定我是应该提出一个新问题,还是只回复旧问题,但现在就去了。

基本上我正在设置结构的矢量数组,如下所示。

class Debugger : public Ogre::SimpleRenderable
{
    struct DebugVertex
    {
        Ogre::Vector3 v;
        unsigned int color;
    };

    typedef std::vector<DebugVertex> Buffer;

protected:

    Buffer              mLineBuffer;

问题出现在代码中......例如......

mLineBuffer.reserve(128);报告它不是Debugger :: DebugVertex的成员。这适用于所有向量操作,例如reserve,empty,ptr,size等。它们都存在,但它在结构中寻找它们。我该如何访问这些?

2 个答案:

答案 0 :(得分:1)

你的typedef使用私有结构,Debugger类之外的任何试图使用它的代码都不会编译。

std :: vector不属于您的班级......

使std :: vector&lt; DebugVertex&gt;朋友班(没有考试,必须检查)或只是公开你的结构。

答案 1 :(得分:0)

确切的编译错误是什么?我的猜测是DebugVertex不符合包含在std::vector之类的STL容器中所需的接口,可能是因为Ogre::Vector3需要工作。

您可以加入Ogre::Vector3的声明吗?