C++程序,求高手帮忙

#include <stack>
#include <iostream>
using namespace std;

int main()
{
stack<int>IntNumber;
int Size;
cout<<"请输入整数栈的大小:";
cin>>Size;
cout<<"---------------------------------------"<<endl;
int * IntStack = new int [Size];
cout<<"请依次输入你要压入栈中的整数:"<<endl;
for (int i=0; i<Size; i++)
cin>>IntStack[i];

for (int::iterator iter=IntStack.begin(); iter!=IntStack.end(); ++IntStack)
IntNumber.push(* iter);
cout<<"已将你数入的整数压入栈中!"<<endl;
cout<<"所形成的整数栈的大小为:"<<IntNumber.size()<<endl;
cout<<"---------------------------------------"<<endl;
while (!IntNumber.empty())
{
cout<<IntNumber.top();
cout<<"将整数弹出栈的结果为:"<<endl;
IntNumber.pop();
}
cout<<endl;

return 0;
}

E:\LQL19\IntStack.cpp(17) : error C2039: 'iterator' : is not a member of '`global namespace''
E:\LQL19\IntStack.cpp(17) : error C2146: syntax error : missing ',' before identifier 'iter'
E:\LQL19\IntStack.cpp(17) : error C2228: left of '.begin' must have class/struct/union type
E:\LQL19\IntStack.cpp(17) : error C2228: left of '.end' must have class/struct/union type
E:\LQL19\IntStack.cpp(18) : error C2100: illegal indirection
这是怎么一回事?

int * IntStack = new int [Size]; IntStack是指向一维数组的指针,不是stack类。 所以没有那些成员,也不能用指向对象运算符。

for (int::iterator iter=IntStack.begin(); iter!=IntStack.end(); ++IntStack)
IntNumber.push(* iter);

这个是错 的。
直接用
for(int i=0;i<Size;i++)
IntNumber.push(IntStack[i]);
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-08
IntelliSense: 当前范围内无法定义 类模板 "std::iterator"
IntelliSense: 未定义标识符 "iter"
相似回答
大家正在搜