C++堆栈的问题,请大家帮下,先谢了!
#include<iostream>
#include<stack>
using namespace std;
int main()
{ /*输入几个数,用堆栈的方式求出最大值
我定义的变量都是整型的,堆栈中不能
实现赋值吗?如这样,那应如何实现?*/
int n;
int Max;//display the maximum value
int value,middle;
stack<int> number;
cout<<"输入要比较的个数"<<endl;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>value;
number.push(value);
}
Max=number.top();
while(!number.empty())
{
middle=number.pop();//出错信息:cannot convert from 'void' to 'int
if(middle>Max)
Max=middle;
number.pop();
}
cout<<"输入的最大值是"<<Max<<endl;
return 0;
}
[解决办法]
- C/C++ code
middle=number.top();//出错信息:cannot convert from 'void' to 'int number.pop();
[解决办法]
stl的stack::pop()返回的是void
要先调用top()才能得到返回值
[解决办法]
使用<stack>,,就得了解标准库
[解决办法]
没错,LZ是把数据结构里的例子直接搬过来了吧
[解决办法]
的确 pop()函数没有返回值的
以上正解
[解决办法]
pop()是没有返回值的,使用top()函数吧