c++代码解释
C++ code explain?
我正在从一本书中学习c++,其中有1行代码我不理解。该程序应该模拟在自动取款机前排队的人。我看不懂这一行:
item = front->item; // Is it necessary and what does it do ?
在bool Queue::dequeue(Item & item)
的末尾。它必须对指针做一些事情,但是当我删除这一行时,程序工作得很好。
下面是代码的重要部分:
class Customer
{
private:
long arrive;
int processtime;
public:
Customer() { arrive = processtime = 0; }
void set(long when);
long when() const { return arrive; }
int ptime() const { return processtime; }
};
typedef Customer Item;
class Queue
{
private:
struct Node { Item item; struct Node * next; };
enum { Q_SIZE = 10 };
Node * front;
Node * rear;
int items;
const int qsize;
Queue(const Queue & q) : qsize(0) { }
Queue & operator=(const Queue & q) { return *this; }
public:
Queue(int qs = Q_SIZE);
~Queue();
bool isempty() const;
bool isfull() const;
int queuecount() const;
bool enqueue(const Item &item);
bool dequeue(Item &item);
};
Queue::Queue(int qs) : qsize(qs)
{
front = rear = NULL;
items = 0;
}
Queue::~Queue()
{
Node * temp;
while (front != NULL)
{
temp = front;
front = front->next;
delete temp;
}
}
bool Queue::enqueue(const Item & item)
{
if (isfull())
return false;
Node * add = new Node;
if (add == NULL)
return false;
add->item = item;
add->next = NULL;
items++;
if (front == NULL)
front = add;
else
rear->next = add;
rear = add;
return true;
}
bool Queue::dequeue(Item & item)
{
if (front == NULL)
return false;
item = front->item; // Is it necessary and what does it do ?
items--;
Node * temp = front;
front = front->next;
delete temp;
if (items == 0)
rear = NULL;
return true;
}
dequeue()
方法从队列中删除前节点。在从队列中删除节点之前,所讨论的行将前节点的item
字段分配给item
输出变量(通过引用传递)。
相关文章:
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 有人能为我解释一下C++代码吗
- 请解释字谜的代码,我看不懂计数器数组,每个值已经是0
- 有人可以解释一下这段代码如何能够反转字符串
- 有人可以向我解释一下这段代码的作用吗?
- 有人可以详细解释这个回文代码是如何工作的吗?
- 如何在 C++11 中解释静态代码
- 任何人都可以解释一下我是否需要 & 在第一个代码片段中
- 我不完全确定此代码的行为.有人可以向我解释一下吗?
- 有人可以解释我这个代码吗?它给出与我们输入的数字相反
- 我在 2D 数组的动态内存分配中遇到了一些奇怪的代码C++? 请解释一下这是什么?
- 解释以下宏代码的 O/P
- 如何解释 IDA Pro 生成的这些代码?
- 交叉和计算,任何人都可以解释代码吗?
- 请解释代码块"for(auto &it : iostr )"
- 需要解释C++代码的行为
- 解释C++代码
- 二叉搜索树的最低公共祖先解释代码
- 任何人都解释C++代码行
- 需要知道为什么代码以这种方式行为- C中的解释代码