/// 用户基本信息
struct UserInfo
{
unsigned int UserID;         /// 用户ID
char NickName[32];           /// 昵称(显示)
unsigned short LogoID;       /// 头像ID
unsigned char bMale;         /// 性别 UserInfo()
{
UserID = 0;
memset(NickName,0,32);
LogoID = 0;
bMale = 0;
};
};/// 桌子基本信息
struct DeskInfo
{
    unsigned char Index; // 所坐位置
    unsigned char State;        // 桌子状态(游戏中或还没开始游戏)
    unsigned char MaxPeople;    // 桌子最多可坐多少人
    unsigned char CurrentPeople;    // 当前桌子上的人数 DeskInfo()
{
Index = 0;
State = 0;
                  MaxPeople = 0;
                  CurrentPeople = 0;
};
};
以上是一只桌子(DeskInfo),每只桌子里有N个人(UserInfo),请问怎么让它有MAP的方式关联起来?
让我可以对桌子里的某个人发消息?
就是用SOCKET对桌子里的某个发送信息,还有就是确定某个桌子的人满了?
小弟一菜鸟,望达人们不吝赐教!

解决方案 »

  1.   

    使用multimap组织
    #include <map>
    using namespace std;
    multimap<struct DeskInfo, struct UserInfo> desks;
    socket通信?
      

  2.   

    up
    struct DeskInfo
    {
        unsigned char Index; // 所坐位置
        unsigned char State;        // 桌子状态(游戏中或还没开始游戏)
        unsigned char MaxPeople;    // 桌子最多可坐多少人
        unsigned char CurrentPeople;    // 当前桌子上的人数
        list<UserInfo> userlist;
    };
      

  3.   

    list<UserInfo> userlist;这里面是不是要包含Socket的相关信息?
    比如类似这样:struct UserInfo 

    unsigned int UserID;        /// 用户ID 
    char NickName[32];          /// 昵称(显示) 
    unsigned short LogoID;      /// 头像ID 
    unsigned char bMale;        /// 性别 CIOCPContext *pcontext;
    CIOCPBuffer *pBuffer;UserInfo() 

    UserID = 0; 
    memset(NickName,0,32); 
    LogoID = 0; 
    bMale = 0; 
    }; 
    }; 
      

  4.   


    这是一种选择,更喜欢用list<unsingned int> userIDList
    另外一种可选的方案用另一个结构体来描述这种关联
    struct Link
    {
       unsigned int DeskID;
       list<unsingned int> userIDList;  
    }