申请内存 问题 MAP使用

Daniel_31 2010-07-29 03:20:21


我想申请10M内存

然后用MAP 将MAP中的值存放到内存中,这样我就可以通过MAP的 键值直接访问或者调用内存中的数据

希望高手指点一下

给点代码

谢谢了

...全文
140 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2010-07-29
  • 打赏
  • 举报
回复
不太理解LZ的想法。
太乙 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sdp1031 的回复:]
引用 9 楼 macrojj 的回复:
很奇怪啊。你建一个map就行了

而且不知道你不存在内存中的map是怎么存在的。。。。


或者你的意思是说把硬盘的数据 读到内存里来,方式是用一个map来映射?
还是说建立一个索引文件?

因为我要从别的地方先得到很多不同的数据

然后申请一块内存来,保存它们


意思是说把硬盘的数据 读到我申请的内存里来,用一个map来映射,……
[/Quote]很多是多少?10M?

如果是的话,那就很少了,不用考虑什么技巧,直接定义一个map,插入到map即可!(map本身就是在内存里的)
Daniel_31 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 namelij 的回复:]
引用 10 楼 sdp1031 的回复:
引用 9 楼 macrojj 的回复:
很奇怪啊。你建一个map就行了

而且不知道你不存在内存中的map是怎么存在的。。。。


或者你的意思是说把硬盘的数据 读到内存里来,方式是用一个map来映射?
还是说建立一个索引文件?

因为我要从别的地方先得到很多不同的数据

然后申请一块内存来,保存它们


意思是说把硬盘的数据……
[/Quote]


现在是别的函数先从硬盘把数据解压缩出来,
然后给我用
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sdp1031 的回复:]
引用 9 楼 macrojj 的回复:
很奇怪啊。你建一个map就行了

而且不知道你不存在内存中的map是怎么存在的。。。。


或者你的意思是说把硬盘的数据 读到内存里来,方式是用一个map来映射?
还是说建立一个索引文件?

因为我要从别的地方先得到很多不同的数据

然后申请一块内存来,保存它们


意思是说把硬盘的数据 读到我申请的内存里来,用一个map来映射,……
[/Quote]
用内存映射吧

把硬盘中的数据映射到内存中,然后从内存里面取出数据,放到map里面,然后将map里面的数据存到硬盘里面,
Daniel_31 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 macrojj 的回复:]
很奇怪啊。你建一个map就行了

而且不知道你不存在内存中的map是怎么存在的。。。。


或者你的意思是说把硬盘的数据 读到内存里来,方式是用一个map来映射?
还是说建立一个索引文件?
[/Quote]
因为我要从别的地方先得到很多不同的数据

然后申请一块内存来,保存它们


意思是说把硬盘的数据 读到我申请的内存里来,用一个map来映射,实现查找数据的功能
macrojj 2010-07-29
  • 打赏
  • 举报
回复
很奇怪啊。你建一个map就行了

而且不知道你不存在内存中的map是怎么存在的。。。。


或者你的意思是说把硬盘的数据 读到内存里来,方式是用一个map来映射?
还是说建立一个索引文件?
Daniel_31 2010-07-29
  • 打赏
  • 举报
回复
还有好一些的没???
wyz007134 2010-07-29
  • 打赏
  • 举报
回复
不要给容器申请空间,给元素申请空间,然后把这些元素放入容器即可。
容器的空间是自动增长的,一般情况下不用考虑内存用尽的问题吧。
  • 打赏
  • 举报
回复
键放在本地
值放在堆里面

char *p = new char[10];
char *t = "hiuh";
memcpy(p, t. sizeof(t));



map.insert(make_pare(1, p));

只是大概思路
genlic 2010-07-29
  • 打赏
  • 举报
回复
声明map后,insert不行?
Daniel_31 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hai040 的回复:]
map<keytype, void*>?
[/Quote]
如何将MAP赋值呢

如何将MAP的值放到内存中呢???

MEMCPY????
hai040 2010-07-29
  • 打赏
  • 举报
回复
map<keytype, void*>?
Daniel_31 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 namelij 的回复:]
申请内存你就用new或者malloc来实现
至于你放MAP至内存可以进行拷贝
memcpy

但我不明白,map会自动调用内存分配函数,为什么你要自己申请内存呢
[/Quote]

因为有很多的大量的数据,我要把MAP的东西 放到内存中,然后通过MAP的键和值的映射,从内存中找到数据

求代码
  • 打赏
  • 举报
回复
申请内存你就用new或者malloc来实现
至于你放MAP至内存可以进行拷贝
memcpy

但我不明白,map会自动调用内存分配函数,为什么你要自己申请内存呢

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧