【问题标题】:Insert multiple elements in array - time count function在数组中插入多个元素 - 时间计数功能
【发布时间】:2012-11-01 18:51:40
【问题描述】:

我正在做一个关于 C++ 的练习,它要求模拟一个服务队列,它要求用一个圆形的一维数组来完成它。所以它要求,当客户来在队列中插入他的名字时,号码他的卡和排队的到达时间。

所以我的第一个问题是如何在数组的一个位置输入所有这些元素?(我不知道它是否称为数组单元格或位置,英语不是我的母语)每个客户都必须占用只有数组的一个位置,我必须将他的所有信息插入一个位置。我已经知道如何从圆形队列中插入或提取元素的条件我只是不知道如何为它们做很多。

其次,它要求打印客户必须在队列中等待的时间,具体取决于在他之前等待的人数(但不必太精确)。

【问题讨论】:

  • 我认为您的意思是循环缓冲区 - 作为队列,对吗?

标签: c++ arrays queue rounding


【解决方案1】:

对于第一个问题:您能否创建一个表示数据集合的类或结构,并将整个结构放入您的容器中?

(编辑:Customer 现在是一个类,有一个构造函数;添加了实例化示例) 您需要稍微清理一下,但类似于:

class Customer {
private:
  std::string m_name;
  int m_card_number;
  int m_arrival_time;
public:
  Customer() : m_card_number(0), m_arrival_time(0) { } // might need default ctor

  Customer(const std::string name, int card_number, int_arrival time)
  : m_name(name), m_card_number(card_number), m_arrival_time(arrival_time)
  { }
};

std::dequeue<Customer> service_queue; // or your container here

Customer c = Customer(name, card_num, current_time);
service_queue.push_back(c);

对于第二个问题;如果你不需要坚持时间,只需要处理差异,一种解决方案是使用clock。只是不要忘记除以 CLOCKS_PER_SECOND 一旦你得到你的时间差(以滴答为单位)并且需要转换为秒。

【讨论】:

  • 我明白你在说什么,但你能举例说明如何将一个类放入数组的一个单元格中,因为我真的不习惯结构,我认为如果我尝试使用一个结构现在我可能会把事情搞砸。至于第二个,我认为时钟不会做,因为时钟所做的是测量一部分代码需要多少时间才能运行,我想要做的是打印客户必须等待多长时间才能得到服务。
  • 没问题;我已经添加了编辑。这就是你所追求的吗?附带说明一下,如果类和结构是“普通旧数据”,则它们之间没有太大区别;默认情况下,结构具有公共字段,类具有私有字段。其他差异只有在您开始添加函数或子类化后才会发挥作用。
  • 感谢您的帮助。我想我明白了。
  • @MKB 没问题。如果这个答案有帮助,您能否点赞和/或接受它?
  • 另外,关于时钟;您使用它的方式是获取两个滴答计数之间的差异,以获得这两个时间点之间的“时间差”。例如,您可以计算两个客户到达之间经过的时间。但是,这仍然可能没有帮助。如果您可以详细说明您希望如何估计客户必须等待的时间,我可以尝试给出更具体的答案。
【解决方案2】:

我会将结构推送到您的队列中,每个结构都将包含所需的必要元素。

struct Customer
{
    string name;
    int ID;
    double change;
}

//in add function...
Customer newCustomer
cin >> newCustomer.name >> newCustomer.ID >> newCustomer.change;
queue.push_back(newCustomer);


retreiving data is simply asking for each element
//in a loop printing out the queue
std::cout << iter->name << iter->ID << iter->change

【讨论】:

    猜你喜欢
    • 2016-12-12
    • 2019-06-09
    • 1970-01-01
    • 2020-02-21
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    相关资源
    最近更新 更多