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 引用并且可能在作用域关闭时不推送。
我正在尝试编写一个名为 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 引用并且可能在作用域关闭时不推送。