我正在尝试将堆栈中的元素移动到向量中。我尝试过以下方法:
for(int i=0; i<vector1.size();i++)
{
vector1[i]=stack1.pop();
}
但它一直给我错误。
答案 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();
}