具有可变大小的 C++ 全局队列数组

标签 c++ arrays compiler-errors queue

我正在从事一个项目,该项目需要一个类 QueueArray,它是一个队列数组。自从我使用 c++ 数组以来已经有一段时间了,所以我在调试为什么我的代码抛出错误时遇到了一些麻烦。

我读了Delete an array of queue objects寻求一些灵感(以及在 Google 上花了几个小时),但我仍然遇到以下代码的错误:

    #include <iostream>
    #include <deque>
    #include <queue>
    using namespace std;

    class QueueArray
    {

        queue<int> theArray[];

        QueueArray::QueueArray(int size)
        {
            queue<int> theArray[] = new queue<int>[size];
            //theArray[] = new queue<int>[size]; //this may be closer, but also giving errors

        }
    };

错误是:

警告 C4200:使用了非标准扩展:结构/union 中的零大小数组 1> 当 UDT 包含大小为零的数组时,无法生成复制构造函数或复制赋值运算符

error C2075: 'theArray': 数组初始化需要大括号

我已经阅读了第二个错误,但我似乎可以弄清楚我需要做什么来修复它。

我需要它是一个可变大小的数组,变量传递给类,这就是为什么我不能在顶部初始化数组的大小,它必须是全局范围的,所以我可以在其他地方使用它类中的函数(类不能通过参数传递数组)。

稍后,队列将是用户定义的类型,但我们现在让它们成为整数队列,不确定这是否会有所不同。我一直看到有人建议在这些情况下使用 vector ,但我别无选择。

如有任何建议,我们将不胜感激。

最佳答案

queue<int>* theArray;

不是

queue<int> theArray[];

关于具有可变大小的 C++ 全局队列数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12657444/

相关文章:

c++ - 用 boost::assign::map_list_of 填充 boost::function 的 std::map

c++ - 创建一个唯一的临时目录

Javascript:如何创建多维数组?

javascript - 在 Javascript 中创建数组数组

c++ - 为什么GCC会说 “a function-definition is not allowed here before ' {' token”?

c++ - 是什么导致字符串输出中的笑脸?

c++ - 在 Linux 中创建动态库并使用 Visual Studio Linux Development 链接到它

C: 如何确定外部数组的 sizeof(array)/sizeof(struct)?

angular - 向angular2迁移到最终版本时出现未处理的promise拒绝错误

c++ - “回复”未在此范围内声明 C++