回 帖 发 新 帖 刷新版面

主题:[讨论]问一个问题啊

我是一个VC++的菜鸟,正在自学数据结构,看的是用C++写的程序,今天我将其中的一个程序用VC++编译,但怎么都运行不了,是关于堆栈的,我把程序贴上来,高手指点一下吧!!
#include"stack.h"
#include"iostream.h"
int main()
{
    int n;
    double item;
    stack<double>numbers;
    cout<<"type n number"<<endl;
    cin>>n;
    for(int i=0;i<n;i++)
    {cin>>item;
    numbers.push(item);
    }
    cout<<endl<<endl;
    while(!number.empty())
    {
        cout<<numbers.pop();
    }
    cout<<endl;
}
说是没有stack这个东东,是怎么回事?将""改成<>也不行,郁闷中

回复列表 (共4个回复)

沙发

stack.h不是标准库中的头文件,所以,编译器找不到stack.h.虽然VC中头文件是.h后缀,但是标准C++是这样的:
#include<stack>
#include<iostream>
using namespace std;
下面的错误:
while(!number.empty())//!numbers.empty()
    {
        cout<<numbers.pop();//不能这样输出。
    }


你看的书是垃圾,没有将清楚。换一本,
The C++ programming language,
Thinking in C++;
或者看看台湾的侯捷的书。

板凳

stack是STL里的,你要用STL要 #include <stack> 
 using namespace std;

3 楼

多谢两位的指点,我已经调出来了,没加using namespace std;这个东东,真晕!

4 楼


[color=00FF00]呵呵.....非常非常感谢咯,为了这问题一直纳闷到现在,终于解决了!呵呵.....[/color]

我来回复

您尚未登录,请登录后再回复。点此登录或注册