我想將內容從堆棧收件箱移動到發件箱,然後返回發件箱的頂部。但是pop的返回類型是無效的,所以代碼會拋出一個錯誤:void value不應該被忽略,因爲它應該是。如何將內容從一個堆棧移動到另一個堆棧?
值如何移動?
下面是代碼:
template <class E>
class Queue
{
private:
stack<E> inbox;
stack<E> outbox;
public:
void enqueue(E item) {
inbox.push(item);
}
E dequeue() {
if (outbox.empty()) {
while (!inbox.empty()) {
outbox.push(inbox.pop());
}
}
return outbox.pop();
}
};
看看[文檔堆棧](http://en.cppreference.com/w/cpp/container/stack),你會發現[top()](http://en.cppreference.com/w/CPP /容器/堆疊/頂部)。 –
如果你在談論標準庫 - 爲什麼不看看堆棧的API? Pop不用於返回對象,它只是刪除頂部對象。 – Nick