这是我第一次尝试使用两个堆栈创建队列。我不确定自己走的路是否正确,因为由于'=': cannot convert from 'void' to 'int'
错误而无法检查我的工作。错误位于以下行:x = enQ.pop();
。 enQ不是函数,那么它怎么可能无效呢?
我的代码当然还没有完成。
stack<int> enQ;
stack<int> deQ;
void enQueue(int x) {
enQ.push(x);
cout << x << " has been added to the queue." << endl;
}
void deQueue() {
while (enQ.size() != 0) {
int x;
x = enQ.pop();
enQ.pop();
deQ.push(x);
cout << x << " had been pushed to DEQUEUE" << endl;
}
}
最佳答案
因为函数std::stack::pop不返回任何内容(即其返回类型为void
)。
你可以改变
x = enQ.pop();
至
x = enQ.top();
enQ.pop();
关于c++ - 尝试使用堆栈创建队列。为什么我会得到无效的int转换错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42357254/