c++ - 如果我试图在 C++ 中创建一个队列,我该如何使队列具有一定的大小?

标签 c++ arrays queue

我是 C++ 的新手,对如何创建队列(我们的第一个家庭作业)感到很困惑。

对于构造函数,我们应该接受队列应该有的长度。如果 Queue 还不是 Fibonacci 数,则 Queue 的长度必须依次是大于给定长度的最接近的 Fibonacci 数。 (例如:如果在构造函数中给定 10,则长度为 13)。

现在我正在将队列实现为一个数组。我是否应该在 header 的私有(private)部分使用 int queueContents[]; 之类的东西,然后将其设置为构造函数中最接近的斐波那契数?

我将如何声明它以在整个文件中使用并在我的构造函数中设置它的长度?

最佳答案

您将有一个全局变量来跟踪大小(如果您为了效率需要增加它)。

ArrayQueue(int sz) 
{
   size = getFib(sz);
   queueContents = new int[size];
   //set front and back to initial value   
}

getFib(int sz) {...}

是的,您需要一个全局变量 int *queueContents。 (首选指针)。

请随时提出更多问题。我最近也不得不编写一个基本的基于数组的队列,所以(希望如此)我可以回答您的任何问题。 :)

关于c++ - 如果我试图在 C++ 中创建一个队列,我该如何使队列具有一定的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19672442/

相关文章:

c++ - 避免在给定示例上重新分配内存

来自 3D .obj 文件的 C++ 字符串标记化

php - 将关联数组中的单个键编码为 base64

与数组一起使用的 C 语言指针

javascript - 将数组对象转换为对象javascript

database - 拉维尔 5.2 : Handling database insertions using the Laravel Queues service

c++ - Q_ASSERT - "Incorrect format specifier"

c++ - 用线程池替换许多 std::async 调用

python - 在python中删除优先级队列的百分比

java - 链表的不同实现