64,662
社区成员
发帖
与我相关
我的任务
分享
bool operator<(const GxEleCode& in ) const
{
int len = strlen(data) ;
int inLen = strlen( in.data ) ;
if( len < inLen )
return true ;
WORD* pVal = (WORD*)data ;
WORD* pInVal = (WORD*)(in.data) ;
if( *pVal < *pInVal )
return true ;
return false ;
}
if( data[0] < in.data[0] )
return true ;
if( data[1] < in.data[1] )
return true ;
if( data[0] < in.data[0] )
return true ;
if(( data[0] == in.data[0] ) && ( data[1] < in.data[1] ))
return true ;
struct GxEleCode
{
char data[3] ;
DWORD frequency ;
GxEleCode()
{
Clear() ;
}
GxEleCode(const char* pIn)
{
Clear() ;
SetValue(pIn) ;
}
bool SetValue(const char* pIn)
{
if( !pIn )
return false ;
int len = strlen(pIn) ;
if( len > 2 )
return false ;
// 汉字,但没拖尾,非法
if( ( pIn[0] & 0x80 ) && len == 1 )
return false ;
for( int i = 0 ; i < len ; i ++ )
data[i] = pIn[i] ;
return true ;
}
void Clear()
{
memset(this , 0 , sizeof(GxEleCode)) ;
}
bool operator<(const GxEleCode& in ) const
{
if ( data[0] == in.data[0] && data[1] == in.data[1] && data[2] == in.data[2] )
return false ;
int len = strlen(data) ;
int inLen = strlen( in.data ) ;
if( len < inLen )
return true ;
if( data[0] < in.data[0] )
return true ;
if( data[1] < in.data[1] )
return true ;
return false ;
}
bool operator==(const GxEleCode& in)
{
if( data[0] == in.data[0] && data[1] == in.data[1] && data[2] == in.data[2] )
return true ;
return false ;
}
};
struct GxEleCode
{
char data[3] ;
DWORD frequency ;
GxEleCode()
{
Clear() ;
}
GxEleCode(const char* pIn)
{
Clear() ;
SetValue(pIn) ;
}
bool SetValue(const char* pIn)
{
if( !pIn )
return false ;
int len = strlen(pIn) ;
if( len > 2 )
return false ;
// 汉字,但没拖尾,非法
if( ( pIn[0] & 0x80 ) && len == 1 )
return false ;
for( int i = 0 ; i < len ; i ++ )
data[i] = pIn[i] ;
return true ;
}
void Clear()
{
memset(this , 0 , sizeof(GxEleCode)) ;
}
bool operator<(const GxEleCode& in ) const
{
if ( data[0] == in.data[0] && data[1] == in.data[1] && data[2] == in.data[2] )
return false ;
int len = strlen(data) ;
int inLen = strlen( in.data ) ;
if( len < inLen )
return true ;
if( data[0] < in.data[0] )
return true ;
if( data[1] < in.data[1] )
return true ;
return false ;
}
bool operator==(const GxEleCode& in)
{
if( data[0] == in.data[0] && data[1] == in.data[1] && data[2] == in.data[2] )
return true ;
return false ;
}
};
typedef struct Key{
int a;
int b;
}MyKey;
typedef std::map<MyKey, string> __STDMAP;
bool operator<(const MyKey& key1, const MyKey& key2) {
return key1.a < key2.a;
};