首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++堆栈的有关问题,请大家帮下,先谢了

2012-03-05 
C++堆栈的问题,请大家帮下,先谢了!#includeiostream#includestackusing namespace stdint main(){/*

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()函数吧

热点排行