c++ - 关于结构 vector 数组的问题

标签 c++ arrays vector

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

基本上我正在设置我的结构 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 的成员。这适用于所有 vector 操作,例如 reserve、empty、ptr、size 等。它们都存在,但它正在结构中寻找它们。我应该如何访问这些?

最佳答案

您的 typedef 使用私有(private)结构,Debugger 类之外的任何代码尝试使用它都不会编译。

std::vector 不是你类(class)的一部分......

要么将 std::vector 设为友元类(未测试,必须检查),要么简单地公开您的结构。

关于c++ - 关于结构 vector 数组的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3777609/

相关文章:

c++ - 在 C++ 中用不完整的派生类覆盖方法返回类型

c++ - 程序因数组声明而崩溃

r - 使用循环组合向量

向量上带有 FOR 循环的 R 函数

typedef 中的 c++ 函数类型

c++ - Varargs 宏执行函数调用或将其转换为字符串

python - 使用 ctypes 从 C++ 函数返回字符串给出大的 int,而不是 char 指针

C语言数组与传递给函数的数组参数之间的区别

c - 使用C从字符串中删除连续的重复字符

不同通用类型的 C++ 数组