一个例子
#include <iostream.h>
#include <vector>
using namespace std;
class iStack
{
public:
iStack(int capacity) :_stack(capacity),_top(0) {}
bool pop(int &value);
bool push(int value);
bool full();
bool empty();
void display();
int size();
private:
int _top;
vector<int> _stack;
};
inline int iStack::size()
{
return _top;
}
inline bool iStack::empty()
{
return _top ? false:true;
}
inline bool iStack::full()
{
return _top<_stack.size()-1 ? false:true;
}
bool iStack:
op(int &top_value)
{
if (empty())
return false;
top_value=_stack[--_top];
cout << "iStack:
op(): " << top_value << endl;
return true;
}
bool iStack:
ush(int value)
{
cout << "iStack:
ush( " << value << " )/n";
if (full())
return false;
_stack[_top++]=value;
return true;
}
void iStack::display()
{
if (!size())
{
cout << "( 0 )/n";
return;
}
cout << "( " << size() << " ) ( bot: ";
for (int ix=0;
ix<_top;
++ix)
cout << _stack[ix] << " ";
cout << " :top )/n";
}
//---------------------------------------
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;
}