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