CMGDK r49-rc2
|
00001 # i f n d e f H G L _ S T A C K _ I N C L U D E 00002 00003 # d e f i n e H G L _ S T A C K _ I N C L U D E 00004 00005 00006 00007 # i n c l u d e < h g l / t y p e / D a t a T y p e . H > 00008 00009 n a m e s p a c e h g l 00010 00011 { 00012 00013 / * * 00014 00015 * S t a c k !jg{|(uNOX[ N*NHQۏTQ0TۏHQQvpencXh 00016 00017 * 00018 00019 * lُ*N{|؏(WKmՋ-N 00020 NO9eُ*N{|vnNxY gO9ea5u\O0 00021 00022 * / 00023 00024 t e m p l a t e < t y p e n a m e T > c l a s s S t a c k / / / Xhz^penc{| 00025 00026 { 00027 00028 p r o t e c t e d : 00029 00030 00031 00032 i n t m a x _ c o u n t ; 00033 00034 i n t m e m _ c o u n t ; 00035 00036 i n t c o u n t ; 00037 00038 T * i t e m s ; 00039 00040 00041 00042 p r o t e c t e d : 00043 00044 00045 00046 i n t G e t C o u n t ( ) { r e t u r n c o u n t ; } 00047 00048 i n t G e t M a x ( ) { r e t u r n m a x _ c o u n t ; } 00049 00050 00051 00052 v o i d S e t M a x ( i n t ) ; 00053 00054 T & G e t I t e m ( i n t ) ; 00055 00056 00057 00058 p u b l i c : / / ^\'` 00059 00060 00061 00062 P r o p e r t y < i n t > C o u n t ; / / / < Xh-Npencv*Npe 00063 00064 P r o p e r t y < i n t > M a x C o u n t ; / / / < Xh-Nv g'Ypenc*Npe 00065 00066 00067 00068 p u b l i c : / / el 00069 00070 00071 00072 S t a c k ( i n t = 0 ) ; 00073 00074 v i r t u a l ~ S t a c k ( ) ; 00075 00076 00077 00078 b o o l P e e k ( T & ) ; 00079 00080 v i r t u a l b o o l P o p ( T & ) ; 00081 00082 b o o l P u s h ( T & ) ; 00083 00084 b o o l P u s h ( T * , i n t ) ; / / / < >eeQY*Npenc 00085 00086 00087 00088 v i r t u a l v o i d C l e a r ( ) ; / / / < nd@b gpenc 00089 00090 00091 00092 T & o p e r a t o r [ ] ( i n t n ) { r e t u r n G e t I t e m ( n ) ; } 00093 00094 00095 00096 v i r t u a l v o i d o p e r a t o r = ( c o n s t S t a c k < T > & ) ; 00097 00098 } ; / / t e m p l a t e < t y p e n a m e T > c l a s s S t a c k 00099 00100 00101 00102 t e m p l a t e < t y p e n a m e T > c l a s s S t a c k O b j e c t : p u b l i c S t a c k < T * > / / / Xh[a 00103 00104 { 00105 00106 p u b l i c : 00107 00108 00109 00110 S t a c k O b j e c t ( i n t n = 0 ) : S t a c k < T * > ( n ) { } ; 00111 00112 v i r t u a l ~ S t a c k O b j e c t ( ) { C l e a r ( ) ; } ; 00113 00114 00115 00116 v o i d C l e a r ( ) ; 00117 00118 } ; / / t e m p l a t e < t y p e n a m e T > c l a s s S t a c k O b j e c t 00119 00120 } / / n a m e s p a c e h g l 00121 00122 # i n c l u d e < h g l / t y p e / S t a c k . C P P > 00123 00124 # e n d i f / / H G L _ S T A C K _ I N C L U D E 00125 00126