请分析一下下面代码,怎么实现自定义的类的使用
#include <vector>
#include <iostream>
#include "iStack.h"
class iStack
{
public:
iStack(int capacity):_stack(capacity),_top(0){};
bool pop(int &value);
bool push(int value);
bool empty();
bool full();
bool display();
int size();
private:
int _top;
vector<int> _stack;
};
inline bool iStack::empty(){
return _top?false:true;}
inline bool iStack::full(){
return _top <_stack.size()-1?false:true;}
bool iStack::pop(int &top_value)
{
if(empty()) return false;
top_value=_stack[--_top];
cout<<"iStack::pop():"<<top_value<<endl;
return true;
}
bool iStack::push(int value)
{
cout<<"iStack::push("<<value<<")\n";
if(full()) return false;
_stack[_top++]=value;
return true;
}
bool iStack::display()
{
if(!size()) {cout<<"(0)\n";return false;}
cout<<"("<<size()<<")(bot:";
for(int ix=0;ix<_top;++ix) cout<<_stack[ix]<<" ";
cout<<":top)\n";
return true;
}
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();
}
}
}