两Int值存入long long

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值