Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在数组中插入多个元素-时间计数函数 我正在做一个C++练习,要求模拟一个服务队列,它要求用一个圆形的一维数组来完成,所以当一个客户来插入他的名字、他的卡号和队列中的到达时间时,它要求:_C++_Arrays_Queue_Rounding - Fatal编程技术网

在数组中插入多个元素-时间计数函数 我正在做一个C++练习,要求模拟一个服务队列,它要求用一个圆形的一维数组来完成,所以当一个客户来插入他的名字、他的卡号和队列中的到达时间时,它要求:

在数组中插入多个元素-时间计数函数 我正在做一个C++练习,要求模拟一个服务队列,它要求用一个圆形的一维数组来完成,所以当一个客户来插入他的名字、他的卡号和队列中的到达时间时,它要求:,c++,arrays,queue,rounding,C++,Arrays,Queue,Rounding,因此,我的第一个问题是如何在数组的一个位置输入所有这些元素?(我不知道它是否称为数组单元格或位置,英语不是我的母语)每个客户只需占据数组的一个位置,我必须在一个位置插入其所有信息。我已经知道了如何从一个循环队列中插入或提取元素的条件,但我不知道如何为很多循环队列插入或提取元素 其次,它要求打印客户排队等待的时间,这取决于有多少人在他前面等待(但不必太精确)。对于第一个问题:您能否创建一个表示数据集合的类或结构,并将整个结构放入您的容器中 (编辑:Customer现在是一个类,具有构造函数;添加了

因此,我的第一个问题是如何在数组的一个位置输入所有这些元素?(我不知道它是否称为数组单元格或位置,英语不是我的母语)每个客户只需占据数组的一个位置,我必须在一个位置插入其所有信息。我已经知道了如何从一个循环队列中插入或提取元素的条件,但我不知道如何为很多循环队列插入或提取元素


其次,它要求打印客户排队等待的时间,这取决于有多少人在他前面等待(但不必太精确)。

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

(编辑: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);
class客户{
私人:
std::字符串m_名称;
int m_卡号;
int m_到达时间;
公众:
Customer():m_卡号(0),m_到达时间(0){}//可能需要默认值
客户(const std::字符串名称、整数卡号、整数到达时间)
:m_名称(名称)、m_卡号(卡号)、m_到达时间(到达时间)
{ }
};
std::退出服务队列;//还是你的集装箱在这里
客户c=客户(姓名、卡号、当前时间);
服务队列。推回(c);

关于第二个问题;如果您不需要坚持时间,只需要处理差异,一个解决方案就是使用。只要在计算时差(以滴答为单位)并需要转换为秒时,不要忘记除以时钟每秒。

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

(编辑: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);
class客户{
私人:
std::字符串m_名称;
int m_卡号;
int m_到达时间;
公众:
Customer():m_卡号(0),m_到达时间(0){}//可能需要默认值
客户(const std::字符串名称、整数卡号、整数到达时间)
:m_名称(名称)、m_卡号(卡号)、m_到达时间(到达时间)
{ }
};
std::退出服务队列;//还是你的集装箱在这里
客户c=客户(姓名、卡号、当前时间);
服务队列。推回(c);

关于第二个问题;如果您不需要坚持时间,只需要处理差异,一个解决方案就是使用。只要在计算时差(以滴答为单位)并需要转换为秒时,不要忘记除以时钟每秒。

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

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
struct客户
{
字符串名;
int-ID;
双重变化;
}
//在添加函数中。。。
顾客新顾客
cin>>newCustomer.name>>newCustomer.ID>>newCustomer.change;
排队。推回(新客户);
检索数据只是要求每个元素
//在循环中打印出队列
std::无法更改名称ID

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

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
struct客户
{
字符串名;
int-ID;
双重变化;
}
//在添加函数中。。。
顾客新顾客
cin>>newCustomer.name>>newCustomer.ID>>newCustomer.change;
排队。推回(新客户);
检索数据只是要求每个元素
//在循环中打印出队列
std::无法更改名称ID

我想你指的是循环缓冲区-作为队列是这样吗?我想你指的是循环缓冲区-作为队列是这样吗?我明白你的意思,但你能举个例子说明如何将类放入数组的一个单元格中,因为我不太习惯结构,我想如果我现在尝试使用结构,我可能会把事情搞砸。至于第二个问题,我不认为时钟会起作用,因为时钟所做的是测量一部分代码运行所需的时间,我想做的是打印客户需要等待多长时间才能得到服务;我已经添加了编辑。这就是你想要的吗?另一方面,如果类和结构是“普通的旧数据”,它们之间没有太大区别;默认情况下,结构有公共字段,类有私有字段。其他差异只有在您开始添加函数或子类化时才会发挥作用。谢谢您的帮助。我想我明白了。@MKB没问题。如果这个答案是有帮助的,你能投票和/或接受它吗?另外,关于时钟;使用它的方法是,计算两个滴答数之间的差值,以获得这两个时间点之间的“时差”。例如,您可以计算两个客户到达之间经过的时间。然而,这可能仍然没有帮助。如果您能提供更多关于如何估计客户必须等待的时间的详细信息,我可以尝试给出更具体的答案。我明白您的意思,但您能否给出一个示例,说明如何将类放入数组的一个单元格中,因为我不太习惯结构,我想如果我现在尝试使用结构,我可能会把事情搞砸。至于第二个问题,我不认为时钟会起作用,因为时钟所做的是测量一部分代码运行所需的时间,我想做的是打印客户需要等待多长时间才能得到服务;我已经添加了编辑。这就是你想要的吗?另一方面,类与类之间没有太大区别