关于程序中可用内存有限的问题

linyu0716 2009-05-29 02:28:48
我遇到这样一道题:
文件A中每行都保存一个单词。请首先对这个文件中的单词按照字典顺序排序,并输出到文件B中。
1.文件A的每个单词最长不超过80个字符;
2.由于输入不严格,文件A每行的单词前后都可能有空格或\tab字符,单词允许重复;文件中可能有空白行;
3.文件A的大小可能超过1000,000字节,单词可能超过100,000个;
4.假设用户可以分配的内存很有限,最多可以保存10,000个单词;

前两个问题好解决,只是在可用内存有限的情况下,如何将文件中的数据读取到程序中,还请各位支支招,谢谢了!
...全文
109 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
linyu0716 2009-05-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liao05050075 的回复:]
使用外部排序,你搜索一下吧
[/Quote]

刚刚搜索了一把,用外部排序是再合适不过的方法了,因为之前没有了解过外部排序,所以没有想到,谢谢!
光宇广贞 2009-05-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 linyu0716 的回复:]
但是被限制了不能用其他类库啊,连STL都不能用
[/Quote]

那就只读一万个。
再读一万个。

再读一万个……

直到读完文件为止。
linyu0716 2009-05-29
  • 打赏
  • 举报
回复
但是被限制了不能用其他类库啊,连STL都不能用
liao05050075 2009-05-29
  • 打赏
  • 举报
回复
使用外部排序,你搜索一下吧
lingyin55 2009-05-29
  • 打赏
  • 举报
回复
VC++中使用内存映射文件处理大文件
http://blog.chinaunix.net/u2/75321/showart_1137227.html
光宇广贞 2009-05-29
  • 打赏
  • 举报
回复
那就只读一万个。
再读一万个。

再读一万个……

直到读完文件为止。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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