- 论坛徽章:
- 0
|
数据的定义如下所示:
- typedef struct _USER_DATA
- {
- DWORD userid;
- DWORD roomid;
- DWORD posid; //可以看成 __int64 roomposid;
- char *otherdata;
- } USER_DATA;
复制代码
一个C/S结构的程序。每次客户端登陆的时候,将客户的userid,roomid,posid等信息放入内存.
每个用户的userid是唯一的,userid重1开始,最大值10万。
用户可能会不定时的登陆或者退出,或者重新登陆,也就是说内存中数据的添加删除很频繁,不适合需要经过排序才能实现查找的算法。
需要实现:
1,根据userid查找到整个结构体
2,根据roomid和posid的值,找到相应的结构体。
//可以看成 __int64 roomposid;
现在已有的实现方法,
定义一个 USER_DATA *g_UserData[MAX_USERID]的结构体指针数组。
直接使用userid作为索引,找到结构体的内容。
但是这样做无法实现 ‘2’ 的功能。
不知道我把问题描述清楚了没有 ?
:em11: :em12:
17:08编辑:
再加一个条件:
roomposid相同的元素会很多,最多是400,最少=0。 |
|