当前位置: 首页>>代码示例>>C++>>正文


C++ QNode::setArrivalTime方法代码示例

本文整理汇总了C++中QNode::setArrivalTime方法的典型用法代码示例。如果您正苦于以下问题:C++ QNode::setArrivalTime方法的具体用法?C++ QNode::setArrivalTime怎么用?C++ QNode::setArrivalTime使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在QNode的用法示例。


在下文中一共展示了QNode::setArrivalTime方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: customer_arrived

void customer_arrived()
{
	cout << "======================一位客户到达======================" << endl;
	//处理客户到达事件,en.NType=0
	QNode *qe = new QNode();	//客户到达时间,处理业务所需要的时间,指向下一个对象
	int durtime, intertime;	//一个是处理业务所需要的时间,一个是下一个客户到达的所需时间

	++CustomerNum;	//人数++

	//参数两个随机数,代表处理业务需要的时间,下一个客户到达的时间
	durtime = rand() % (MAX_TIME + 1);	//这个额是[0 ~ MAX_TIME(30)]
	intertime = rand() % (INTERVAL + 1);	//这个是下一个客户进入银行要等待的时间[0~INTERVAL(5)]

	//如果银行没有关门,我们要产生下一个事件到达
	int t = en.getOccurTime() + intertime;
	if (t < closeTime)
	{
		//插入事件表下一个事件
		Event ei;
		ei.setOccurTime(t);
		ei.setNType(0);
		ev.insert(ei);
	}

	int i = min_queue(q);	//求得最短的队列,注意我们有1到4队列,没有0队列
	//吧事件插入到最短的队列中
	//首先我们的事件发生时间(事件到达时间)和执行时间
	qe->setArrivalTime(en.getOccurTime());
	qe->setDuration(durtime);	//时间的执行时间
	q[i]->enQueue(qe);	//吧qe插入到链表中

	//判断我们插入的队列是不是长度是1,如果是代表在插入之前这个窗口是空的,这个的作用
	//客户离开事件,是要首先计算该客户在银行逗留的时间,然后从队列中删除该客户之后查看队列是否为空,若不为空则设定一个新的对头客户离开事件
	en.setOccurTime(en.getOccurTime() + durtime);	//设置新的时间到达事件
	en.setNType(i);	//0代表新的客户到达,1是1号窗口客户离开,2是2号窗口客户离开,3是3号窗口客户离开,4是。。。,这里是客户到达事件,所以是0
	if (q[i]->length() == 1)
	{
		//吧第i个队列的离开事件插入事件表,等会用来计算窗口的客户总时间
		ev.insert(en);
	}

}//customer_arrived()
开发者ID:cutterpoint,项目名称:DataStructureAndAlgorithm,代码行数:42,代码来源:main.cpp


注:本文中的QNode::setArrivalTime方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。