将堆栈中的值移动到 C++ 中的向量

move values in stack to a vector in c++

我正在尝试将堆栈中的元素移动到向量中。我尝试了以下方法:

for(int i=0; i<vector1.size();i++)
{
    vector1[i]=stack1.pop();
}

但它一直给我错误。

std::stack<T>::pop()doesn't return a value (it's a void function)。你需要得到顶部,然后弹出,即

for(int i=0; i<vector1.size();i++)
{
    vector1[i]=stack1.top();
    stack1.pop();
}

std::stack::pop 没有 return 值

您需要使用 std::stack::top 获取顶部元素,然后将其从堆栈中移除,如下所示:

   vector1[i]=stack1.top();
   stack1.pop();

那是因为 pop() 函数没有 return 值。

您需要使用 top() 来 return 获取堆栈顶部的元素,然后使用 pop() 来消除该元素...

for (int i = 0; i<vector1.size(); i++)
{
    vector1[i] = stack1.top();
    stack1.pop();
}