将项目添加到队列
Adding Items to a Queue
我应该模拟一个跑道机场在给定时间段内的运行情况。我所做的是创建队列以分别等待准备起飞和降落的飞机。我创建了一个 class 来表示一架飞机,因为我需要监控它在队列中保留的时间。因此,要将 "plane" 添加到任一队列,需要测试一个条件(一个 returns true/false 基于随机性的函数),如果为真,则添加一个平面。我的问题是有没有办法声明一个新的 "plane" 然后将其添加到队列中?例如,假设 "landing" 是一个已经声明的队列:
if(condition)
create plane
landing.push(created plane)
是吗?它不是很清楚你在问什么。
您只需 运行 您的构造函数或您需要什么来创建飞机并将其推入队列。
从你的问题看来,你需要做的就是:
if (condition)
landing.push(Plane(/*argumnts, if any */));
我假设您的容器创建了副本。
示例:
#include <queue>
class Plane
{
public:
Plane() {}
};
std::queue<Plane> landing;
int main()
{
landing.push(Plane());
}
如果您将队列视为一种特殊的数组,可能对您来说更容易。
您将对象推送到队列中,就像您的情况下的 BigInt 或平面对象(取决于您如何实现队列)。
可以调用括号内的Plane的构造函数,也可以单独创建一个平面对象入队。
所以最直观的是:
landing.push(平面(a,b...));
或:
平面p = new Plane(a,b...);
landing.push(p);
如果您编写了自己的队列class,那么这实际上取决于您如何实现 push 方法。您是简单地引用一个平面对象并为其创建一个节点,还是在 push 方法中创建平面对象?
我应该模拟一个跑道机场在给定时间段内的运行情况。我所做的是创建队列以分别等待准备起飞和降落的飞机。我创建了一个 class 来表示一架飞机,因为我需要监控它在队列中保留的时间。因此,要将 "plane" 添加到任一队列,需要测试一个条件(一个 returns true/false 基于随机性的函数),如果为真,则添加一个平面。我的问题是有没有办法声明一个新的 "plane" 然后将其添加到队列中?例如,假设 "landing" 是一个已经声明的队列:
if(condition)
create plane
landing.push(created plane)
是吗?它不是很清楚你在问什么。 您只需 运行 您的构造函数或您需要什么来创建飞机并将其推入队列。
从你的问题看来,你需要做的就是:
if (condition)
landing.push(Plane(/*argumnts, if any */));
我假设您的容器创建了副本。
示例:
#include <queue>
class Plane
{
public:
Plane() {}
};
std::queue<Plane> landing;
int main()
{
landing.push(Plane());
}
如果您将队列视为一种特殊的数组,可能对您来说更容易。 您将对象推送到队列中,就像您的情况下的 BigInt 或平面对象(取决于您如何实现队列)。 可以调用括号内的Plane的构造函数,也可以单独创建一个平面对象入队。 所以最直观的是:
landing.push(平面(a,b...));
或:
平面p = new Plane(a,b...); landing.push(p);
如果您编写了自己的队列class,那么这实际上取决于您如何实现 push 方法。您是简单地引用一个平面对象并为其创建一个节点,还是在 push 方法中创建平面对象?