C ++:将元素从队列的前面移动到后面

C++: Moving an element from Front of queue To Back

我正在尝试编写一个名为 move_to_rear 的函数,它将队列前面的元素移动到队列的后面,然后使排在第二位的元素成为前面的元素。我能够使用几种不同的方法来做到这一点,但我的同学告诉我他只使用了 push、front 和 pop。

他是如何仅使用这三个功能完成这样的事情的?

也许我遗漏了什么,但由于它是队列而不是堆栈,所以答案很简单:

const Item first = q.front(); //getting the first
q.pop(); //removing him
q.push(first); //adding him back to the queue (which will be in the rear)

只是为了确保您理解:
Queue 弹出队列中的第一个项目,并将项目推入后面。 FIFO = 先进先出。 Stack 弹出列表中的最后一个项目,并将项目推入后面。 LIFO = 后进先出。 first 的值必须是常量,因为 front return 引用并且可能在作用域关闭时不推送。