gpt4 book ai didi

c++ - 如何将内容从一个堆栈移动到另一个堆栈?

转载 作者:太空宇宙 更新时间:2023-11-04 15:45:39 24 4
gpt4 key购买 nike

我想将堆栈收件箱中的内容移动到发件箱,然后返回发件箱的顶部。但是 pop 的返回类型是 void,所以代码会抛出一个错误:void value not ignored as it shouldned be.

如何移动值?

代码如下:

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();
}

};

最佳答案

返回栈顶的是stack::topstack::pop 只是移除顶部元素而不返回它。

E dequeue() {
if (outbox.empty()) {
while (!inbox.empty()) {
outbox.push(inbox.top());
inbox.pop();
}
}
E ret = outbox.top();
outbox.pop();
return ret;
}

关于c++ - 如何将内容从一个堆栈移动到另一个堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17063475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com