永发信息网

关于c++Primer书上4.15栈类实例的问题.doc

答案:1  悬赏:20  手机版
解决时间 2021-01-17 00:41
  • 提问者网友:我是女神我骄傲
  • 2021-01-16 20:55
关于c++Primer书上4.15栈类实例的问题.doc
最佳答案
  • 五星知识达人网友:雪起风沙痕
  • 2021-01-16 21:59
我学的是第四版,我帮你把程序做了一下调试,现在你可以拷贝到你的便一起上运行了,如果还有问题再来讨论哦,我的百度Hi经常在线的
//
#ifndef ISTACK_H
#define ISTACK_H//头文件保护符是必要有的
//#include "stdafx.h" 不知道这个头文件是做什么的
#include  
#include //有cout cin要有iostream头文件
//using std::vector; //头文件中不能using声明,否则使用这一头文件的CPP中会重复声明
//using std::cout; 
//using std::endl; 
class iStack 

public: 
iStack(int capacity):_stack(capacity),_top(0) {} 
bool pop(int &value); 
bool push(int value); 
inline bool full() 
{return _top?false:true;} //这一句,由于_top被初始为0了,full()不就永远返回true了吗? 
inline bool empty() 
{return _topvoid display(); 
inline int iStack::size(){return _top;}; 
private: 
int _top; 
std::vector _stack; 
}; 
bool iStack::pop(int &top_value) 

if(empty())//是不是empty()应该返回真,if返回false,下面的语句执行不到? 
return false; 
top_value=_stack[--_top]; 
std::cout<<"iStack::pop():"<return true; 

bool iStack::push(int value) 

 std::cout<<"iStack::push("< "; if(full()) 
return false; 
_stack[_top++]=value;//由于_top被初始为0,上面的if永远为真,直接return了,下面这些语句就执行不了了 
return true; 

void iStack::display() 

if(!size()) 

 std::cout<<"(0)
"; return ; 

std::cout<<"("<for(int ix=0;ix<_top;++ix) 
std::cout<<_stack[ix]<<" "; 

std::cout<<":top)
"; } 
#endif
//
#include  
#include "iStack.h" 
using std::cout; 
using std::endl; 
int main() 

iStack stack(32); 
stack.display(); 
for(int ix=1;ix<51;++ix) 

if(ix%2==0) 
stack.push(ix); 
if(ix%5==0) 
stack.display(); 
if(ix%10==0) 

int dummy; 
stack.pop(dummy);stack.pop(dummy); 
stack.display(); 


return 0; 
}
//运行结果如下图

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯