struct s_my_hash_key
{
typedef UINT64 td_base;
td_base m_key;
bool operator==(s_my_hash_key o2)const
{
return m_key==o2.m_key;
}
bool operator<(s_my_hash_key o2)const
{
return m_key<o2.m_key;
}
void operator=(s_my_hash_key o2)
{
m_key=o2.m_key;
}
struct s_parser
{
td_base letter0:16;
td_base letter1:16;
td_base letter2:16;
td_base length_:16;
};
s_my_hash_key():m_key(0)
{
}
s_my_hash_key(UINT16 letter0, UINT16 letter1, UINT16 letter2, UINT16 length_):m_key(0)
{
s_parser& p=(s_parser&)m_key;
if(sizeof(p)!=sizeof(m_key))throw 0;//чисто для самоконтроля в дебаге
p.letter0=letter0;
p.letter1=letter1;
p.letter2=letter2;
p.length_=length_;
}
s_my_hash_key(const char* pWord):m_key(0)
{
s_parser& p=(s_parser&)m_key;
if(sizeof(p)!=sizeof(m_key))throw 0;//чисто для самоконтроля в дебаге
if(!pWord)return;
p.length_=strlen(pWord);
if(p.length_>0)p.letter0=pWord[0];
if(p.length_>1)p.letter1=pWord[1];
if(p.length_>2)p.letter2=pWord[2];
}
};
//
s_my_hash_key h1;
s_my_hash_key h2;
if(h1==h2)
{
}
if(h1<h2)
{
}
h1=h2;
s_my_hash_key h3('a','b','c',10);
s_my_hash_key h4("abcdefghij");
struct s_my_hash_key
{
typedef UINT64 td_base;
td_base m_key;
bool operator==(s_my_hash_key o2)const
{
return m_key==o2.m_key;
}
bool operator<(s_my_hash_key o2)const
{
return m_key<o2.m_key;
}
void operator=(s_my_hash_key o2)
{
m_key=o2.m_key;
}
struct s_parser
{
td_base letter0:16;
td_base letter1:16;
td_base letter2:16;
td_base length_:16;
};
s_my_hash_key():m_key(0)
{
}
s_my_hash_key(UINT16 letter0, UINT16 letter1, UINT16 letter2, UINT16 length_):m_key(0)
{
s_parser& p=(s_parser&)m_key;
if(sizeof(p)!=sizeof(m_key))throw 0;//чисто для самоконтроля в дебаге
p.letter0=letter0;
p.letter1=letter1;
p.letter2=letter2;
p.length_=length_;
}
s_my_hash_key(const char* pWord):m_key(0)
{
s_parser& p=(s_parser&)m_key;
if(sizeof(p)!=sizeof(m_key))throw 0;//чисто для самоконтроля в дебаге
if(!pWord)return;
p.length_=strlen(pWord);
if(p.length_>0)p.letter0=pWord[0];
if(p.length_>1)p.letter1=pWord[1];
if(p.length_>2)p.letter2=pWord[2];
}
};
//
s_my_hash_key h1;
s_my_hash_key h2;
if(h1==h2)
{
}
if(h1<h2)
{
}
h1=h2;
s_my_hash_key h3('a','b','c',10);
s_my_hash_key h4("abcdefghij");