C++ 队列链表出列函数

C++ 队列链表出列函数,c++,linked-list,queue,C++,Linked List,Queue,我目前正在学习各种链表、队列和堆栈。我正在读一些关于各种队列函数的注释。我无法理解提供的出列功能 void CintQueue::Dequeue(int& item) //Remove front Item from the Queue { Node *TempPtr; TempPtr = m_qFront; item = m_qFront->data; m_qFront = m_qFront->next; if (m_qFront == NU

我目前正在学习各种链表、队列和堆栈。我正在读一些关于各种队列函数的注释。我无法理解提供的出列功能

void CintQueue::Dequeue(int& item) //Remove front Item from the Queue
{
   Node *TempPtr;

   TempPtr = m_qFront;
   item = m_qFront->data;
   m_qFront = m_qFront->next;
   if (m_qFront == NULL)
       m_qRear = NULL;
   delete TempPtr;
}
我不明白为什么会有一个参数被传递到dequeue。它的目的是什么?我从代码中看到,它被分配了来自前端节点的数据值,但是函数dequeue没有返回值,所以我不理解它的用途。有人能解释一下这个功能是如何工作的吗?
是否需要一个单独的函数来获取从队列中删除的值?

函数参数被传递一个引用。因此,当它在函数中设置时,它将设置作为参数传递的变量:

CintQueue q;  // define queue
// fill q with ints
int i;
q.Dequeue(i);  // i is set here

传递与队列的第一个对象具有相同类型的变量的引用。在该方法中,第一个项目的数据保存到此变量中,然后删除该项目。因此,您只需一次函数调用就可以获取队列头项的数据并将其删除


传递对函数的引用并为其赋值是void函数返回某些内容的一种方式。您也可以创建一个具有相同用途的方法,返回值不带参数。

更像是一个
pop\u front
,在这里,您删除头部的元素,然后返回它,只是在这里不返回它,而是获取一个输出参数。非常感谢,帮助我比我读的笔记更清楚如果这回答了你的问题,请接受。另外,请看这里,以参考C++标准库,包括STD::