我有一个文件,里面有多种不同的记录,但是每种记录都有唯一的ID号,(如 10张山 11小李 10张山 11小李)
我想一次性读取出来,然后为每种记录做一个索引,访问的时候不再重新读取文件,直接访问内存就行了,
请高手指点一下怎么做哦~
我想一次性读取出来,然后为每种记录做一个索引,访问的时候不再重新读取文件,直接访问内存就行了,
请高手指点一下怎么做哦~
解决方案 »
- 今天遇到一个很搞笑的问题,谁来解释一下
- 内存泄漏?
- LoadImage可以加载PNG格式的图片么?
- SendMessage的问题
- 怎样建一个只有一个对话框而没有主窗口的win32应用程序?(看下代码有什么问题)
- 请教一下远程图形登陆软件的原理?
- ******斑竹你们看看,这是为什么!!!!!!怒中....................******
- 请有过屏蔽win键经验的高手指教一下
- 怎么在对话框中内嵌一个对话框
- 如何在类似EDIT的东东中输完数据后按下回车键时使指定的按钮生效
- HttpSendHttpResponse返回87(ERROR_INVALID_PARAMETER) help!
- VC 关于弹出对话框问题
将记录按照ID挂在链表上,使用的时候从第一个开始的查询。如果记录非常多,链表的查询效率会降低,那么可以试着使用B树。
不过实现B树的算法使用起来太麻烦了……多种不同的记录,可以用不同的结构体实现,
链表中只记录结构体的地址,而不使用结构体,就可以实现在一个链表中挂多种记录了。
就这样的:Class CContents;//or Struct CContents
这个是存放内容的
map<int,CContents>m_Map;//关键字是唯一的ID号,后面的CContents是存放相应ID对应的内容。
再要找对应ID的时候,直接用m_Map查找 。
typedef struct _OEVT
{
long lCount;
long field;
bool ModifyFlag;
long *pOEvt
}*LPOEVT,OEVT;
全局声明:LPOEVT m_pOEvt[256][6];
在使用时分配空间:
m_pOEvt[10][0]->pOEvt=new long[count];
m_pOEvt[20][0]->pOEvt=new long[1000];为什么在我分配空间的时候报错啊,好像是指针错误,请教这个问题怎么解决?