CMGDK r49-rc2
K:/CMGDKv18/SDK/Include/hgl/type/Set.H
浏览该文件的文档。
00001 # i f n d e f   H G L _ S E T _ I N C L U D E 
00002  
00003  # d e f i n e   H G L _ S E T _ 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 / B i t A r r a y . H > 
00008  
00009  n a m e s p a c e   h g l 
00010  
00011  { 
00012  
00013      / * * 
00014  
00015      *      bn(u!jg
00016  
00017      * / 
00018  
00019      t e m p l a t e < t y p e n a m e   E , u n s i g n e d   i n t   S t a r t , u n s i g n e d   i n t   E n d >   c l a s s   S e t 
00020  
00021      { 
00022  
00023          B i t A r r a y   b i t ; 
00024  
00025  
00026  
00027      p u b l i c : 
00028  
00029  
00030  
00031          S e t ( ) : b i t ( E n d - S t a r t + 1 ) { } 
00032  
00033  
00034  
00035          v i r t u a l   ~ S e t ( ) { } ; 
00036  
00037  
00038  
00039          / * * 
00040  
00041          *   S_pencc
00042  
00043          *   @ p a r a m   b u f   pencc
00044  
00045          *   @ r e t u r n   W[^
00046  
00047          * / 
00048  
00049          i n t   G e t D a t a ( v o i d   * * b u f ) 
00050  
00051          { 
00052  
00053              i n t   b y t e _ s i z e = ( b i t . C o u n t + 7 > > 3 ) ; 
00054  
00055  
00056  
00057              * b u f = b i t . D a t a ; 
00058  
00059  
00060  
00061              r e t u r n   b y t e _ s i z e ; 
00062  
00063          } 
00064  
00065  
00066  
00067          S e t   & o p e r a t o r = ( c o n s t   S e t   & r h s ) 
00068  
00069          { 
00070  
00071              i f ( t h i s ! = & r h s ) 
00072  
00073                  b i t = r h s . b i t ; 
00074  
00075  
00076  
00077              r e t u r n   * t h i s ; 
00078  
00079          } 
00080  
00081  
00082  
00083          S e t   & o p e r a t o r + = ( c o n s t   S e t   & r h s ) 
00084  
00085          { 
00086  
00087              i f ( t h i s ! = & r h s ) 
00088  
00089                  b i t + = r h s . b i t ; 
00090  
00091  
00092  
00093              r e t u r n   * t h i s ; 
00094  
00095          } 
00096  
00097  
00098  
00099          S e t   & o p e r a t o r - = ( c o n s t   S e t   & r h s ) 
00100  
00101          { 
00102  
00103              i f ( t h i s ! = & r h s ) 
00104  
00105                  b i t - = r h s . b i t ; 
00106  
00107  
00108  
00109              r e t u r n   * t h i s ; 
00110  
00111          } 
00112  
00113  
00114  
00115          S e t   & o p e r a t o r * = ( c o n s t   S e t   & r h s ) 
00116  
00117          { 
00118  
00119              i f ( t h i s ! = & r h s ) 
00120  
00121                  b i t * = r h s . b i t ; 
00122  
00123  
00124  
00125              r e t u r n   * t h i s ; 
00126  
00127          } 
00128  
00129  
00130  
00131          S e t   o p e r a t o r + ( c o n s t   S e t   & r h s ) c o n s t 
00132  
00133          { 
00134  
00135              S e t < E , S t a r t , E n d >   s = t h i s ; 
00136  
00137  
00138  
00139              s + = r h s ; 
00140  
00141  
00142  
00143              r e t u r n   s ; 
00144  
00145          } 
00146  
00147  
00148  
00149          S e t   o p e r a t o r - ( c o n s t   S e t   & r h s ) c o n s t 
00150  
00151          { 
00152  
00153              S e t < E , S t a r t , E n d >   s = t h i s ; 
00154  
00155  
00156  
00157              s - = r h s ; 
00158  
00159  
00160  
00161              r e t u r n   s ; 
00162  
00163          } 
00164  
00165  
00166  
00167          S e t   o p e r a t o r * ( c o n s t   S e t   & r h s ) c o n s t 
00168  
00169          { 
00170  
00171              S e t < E , S t a r t , E n d >   s = t h i s ; 
00172  
00173  
00174  
00175              s + = r h s ; 
00176  
00177  
00178  
00179              r e t u r n   s ; 
00180  
00181          } 
00182  
00183  
00184  
00185          S e t &   o p e r a t o r   < < ( c o n s t   E   e l ) 
00186  
00187          { 
00188  
00189              b i t . W r i t e P o s ( e l - S t a r t , t r u e ) ; 
00190  
00191  
00192  
00193              r e t u r n   * t h i s ; 
00194  
00195          } 
00196  
00197  
00198  
00199          S e t &   o p e r a t o r   > > ( c o n s t   E   e l ) 
00200  
00201          { 
00202  
00203              b i t . W r i t e P o s ( e l - S t a r t , f a l s e ) ; 
00204  
00205  
00206  
00207              r e t u r n   * t h i s ; 
00208  
00209          } 
00210  
00211  
00212  
00213          v o i d   C l e a r ( b o o l   a l l _ s e l e c t = f a l s e ) 
00214  
00215          { 
00216  
00217                      b i t . F i l l ( a l l _ s e l e c t ) ; 
00218  
00219          } 
00220  
00221  
00222  
00223          b o o l   C h e c k ( c o n s t   E   e l ) c o n s t 
00224  
00225          { 
00226  
00227              r e t u r n   b i t . R e a d P o s ( e l - S t a r t ) ; 
00228  
00229          } 
00230  
00231  
00232  
00233          b o o l   o p e r a t o r   = =   ( c o n s t   S e t   & r h s )   c o n s t 
00234  
00235          { 
00236  
00237                          r e t u r n   b i t = = r h s . b i t ; 
00238  
00239          } 
00240  
00241  
00242  
00243              b o o l   o p e r a t o r   ! = ( c o n s t   S e t &   r h s )   c o n s t   { r e t u r n   ! o p e r a t o r = = ( r h s ) ; } 
00244  
00245  
00246  
00247          b o o l   S a v e T o S t r e a m   ( S t r e a m   * s t r ) { r e t u r n   b i t . S a v e T o S t r e a m ( s t r ) ; }                             / / / < OX[S_MRMO5Rpenc0RAm
00248  
00249          b o o l   L o a d F r o m S t r e a m   ( S t r e a m   * s t r ) { r e t u r n   b i t . L o a d F r o m S t r e a m ( s t r ) ; }                                                     / / / < NAm-NSMO5Rpenc
00250  
00251          b o o l   S a v e T o F i l e       ( c o n s t   w c h a r _ t   * f n ) { r e t u r n   b i t . S a v e T o F i l e ( f n ) ; }                                                   / / / < OX[S_MRMO5Rpenc0ReN
00252  
00253          b o o l   L o a d F r o m F i l e   ( c o n s t   w c h a r _ t   * f n ) { r e t u r n   b i t . L o a d F r o m F i l e ( f n ) ; }                                               / / / < NeN-NSMO5Rpenc
00254  
00255      } ; 
00256  
00257  } / / n a m e s p a c e   h g l 
00258  
00259  # e n d i f / / H G L _ S E T _ I N C L U D E 
00260  
00261  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义