スタック受信箱から送信箱に内容を移動して、送信箱の先頭に戻したい。しかし、pop の戻り値の型は void であるため、コードは次のようなエラーをスローします。
値はどのように移動できますか?
コードは次のとおりです。
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();
}
};