C ++:从队列前面移动一个元素返回

时间:2015-10-16 23:39:26

标签: c++ queue push frontend pop

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

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

1 个答案:

答案 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返回引用,并且在范围关闭时可能不会推送。