两Int值存入long long

来源:互联网 发布:spc数据自动生成器 编辑:程序博客网 时间:2024/06/03 05:40

struct stRoleFlag                                    
{                                                    
     int  m_roleId;              //int值之一                     
     int  m_eratingId;        //int值之二     

     stRoleFlag()
     {
          m_roleId = 0;
          m_eratingId = 0;
     }

     stRoleFlag(int roleid, int eratingid)
     {
         m_roleId = roleid;
         m_eratingId = eratingid;
     }
 

     //将long long转换为两个int值
     stRoleFlag(long long key)
     {
         m_roleId = key & 0xFFFFFFFF;
         m_eratingId = key >> 32 & 0xFFFFFFFF;
     }

     bool operator <(const stRoleFlag & other) const  
     {                                                
          if(m_roleId != other.m_roleId)               
         {                                            
               return m_roleId < other.m_roleId;        
         }                                            
         else                                         
         {                                            
               return m_eratingId < other.m_eratingId;     
         }                                            
     }                                                

     bool operator ==(const stRoleFlag & other) const 
     {                                                
          return (m_roleId == other.m_roleId && m_eratingId == other.m_eratingId);
     }

     bool operator !=(const stRoleFlag & other) const 
     {                                                
          return (m_roleId != other.m_roleId || m_eratingId != other.m_eratingId);
     }

     bool IsRole()
     {
          return (m_roleId != 0 && m_eratingId != 0);
     }

//    stRoleFlag operator =(stRoleFlag & other)
//    {                                                
//        m_roleId = other.m_roleId;
//        m_eratingId = other.m_eratingId;
//        return *this;
//    }
};

 

//将两个int值存入long long

long long getHashKeyByRoleFlag(stRoleFlag & iRole)
{
      long long key = iRole.m_eratingId & 0xFFFFFFFF; 
     long long roleid = iRole.m_roleId & 0xFFFFFFFF;
     key = key << 32 | roleid;
     return key;
}

0 0
原创粉丝点击