Introduction
This is a small stack implementation that is relied on MFC CArray
template class. It has implemented the three mostly needed stack functions Push
, Pop
and Peek
. The class is directly derived from CArray
and consequently it supplies all inherited functions too.
Usage sample
CStack<int> m_stack;
m_stack.Push( 1973 );
m_stack.Push( 2004 );
m_stack.Push( 30 );
int size = m_stack.GetSize();
int value = m_stack.Peek();
int value = m_stack.Pop();
The implementation
#ifndef _H_TEMPLATE_H_
#define _H_TEMPLATE_H_
template <class T> class CStack : public CArray<T,T>
{
public:
void Push( T newView ){
Add( newView );
}
T Peek(int index=-1){
return ( index >= GetSize() ||
GetSize()==0) ? NULL : ElementAt( ( index==-1?GetSize()-1:index) );
}
T Pop(){
T item = Peek();
if(item) RemoveAt(GetSize()-1);
return item;
}
};
#endif