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

时间:2015-01-21 22:30:14

标签: c++ vector stack

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

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

但它一直给我错误。

3 个答案:

答案 0 :(得分:3)

std::stack::pop没有返回值

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

你需要使用top()返回堆栈顶部的元素,然后使用pop()来消除该元素......

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