将项添加到队列

时间:2015-02-26 00:06:05

标签: c++ class queue

我应该在一段时间内模拟一个跑道机场的运营。我所做的是创建队列来保存准备起飞和降落的飞机。我创建了一个表示飞机的类,因为我需要监视它在队列中保留多长时间。所以要添加一架飞机"对于任一队列,测试条件(基于随机性返回真/假的函数),如果为真,则添加平面。我的问题是有没有一种新的飞机"可以声明然后添加到队列中吗?例如,假设"登陆"是已经声明的队列:

if(condition)
    create plane
    landing.push(created plane)

3 个答案:

答案 0 :(得分:1)

如果您将队列视为特殊数组,则可能更容易。 您可以将对象推送到队列中,例如BigInt或平面对象(具体取决于您实现队列的方式)。 您可以在括号中调用Plane的构造函数,也可以单独创建一个Plane对象并将其推送到队列中。 所以最直观的是:

landing.push(平面(A,B ...));

或:

平面p =新平面(a,b ......); landing.push(P);

如果你编写了自己的队列类,那么它实际上取决于你如何实现push方法。您是简单地引用平面对象并为其创建节点,还是在push方法中创建平面对象?

答案 1 :(得分:0)

是?它不是很清楚你在问什么。 您只需运行构造函数或创建平面的内容并将其推送到队列中。

答案 2 :(得分:0)

从您的问题来看,您似乎需要做的就是:

if (condition)
    landing.push(Plane(/*argumnts, if any */));

我假设您的容器创建了副本。

示例:

#include <queue>

class Plane
{
   public:
     Plane() {}
};

std::queue<Plane> landing;

int main()
{
   landing.push(Plane());
}

直播示例:http://ideone.com/TyTtlc