我试图编写一个名为move_to_rear
的函数,它将队列前面的元素移动到队列的后面,然后使元素在前面元素中排在第二位。我能够使用几种不同的方法来做到这一点,但是我的同学告诉我他只使用push,front和pop来做到这一点。
他是如何使用这三个功能完成这样的事情的呢?
答案 0 :(得分:4)
也许我错过了一些东西,但由于它的队列而不是堆栈,答案很简单:
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)
只是为了确保你理解:
队列弹出队列中的第一个项目,并将项目推送到后面。 FIFO =先进先出。
Stack弹出列表中的最后一项,并将项目推入后面。 LIFO =后进先出。
first
的值必须为const,因为front
返回引用,并且在范围关闭时可能不会推送。