这是我第一次尝试使用两个堆栈创建队列。我不确定自己走的路是否正确,因为由于'=': 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/

10-11 02:18