请问CString的大小多大时的效率高?
我要处理一些文本文件,大小可能从几K到几M,我想每次读取100K进行一些基本的查找操作,这100K都放在CString中,不知这样做效率是否可以,请大家给些更好的办法。

解决方案 »

  1.   

    应该可以,CString也是动态申请内存,然后帮你管理内存罢了。
    不过一般来说这么大的内存还是用VirtualAlloc()函数好。
      

  2.   

    如果CString是动态管理内存的话,那我直接把文件内容都读到一个CString中效率还可以吗?几M的CString效率还高吗?
      

  3.   

    可以把内容读到容器vector或者list中,进行查找效率要高些
      

  4.   

    大的数据建议不要用CString,效率低得不是一点点
    CSring比较适合处理小的字符串,比如Message用的了
      

  5.   

    对头, 既然你准备查找或排序读入的文本,建议你不要用CString, 用STL的string. 同时STL帮你实现了很多查找方面的功能(都是很高效的).
      

  6.   

    CString 好像有长度限制吧,我写sql语句时出现过存不进去的情况····
      

  7.   

    学习,自己一向只知道用CString,却从来不会去考虑它的效率问题,也许这就是差距吧。
      

  8.   

    谢谢大家FreePlus(FreePlus):请问STL的string效率在多少尺寸下效率比较高3jaja(3++输入法):用char*也太累了吧! :)
      

  9.   

    呵呵,如果真的要几M的话, 建议你不要一下子读入内存。 可以用内存映射文件。这样更快。 呵呵, 具体你看一下Windows 编程技术内幕。 上面讲的很详细。如果只是几百K的话。 CString或string都比较方便。 但string提供的查找,排序方面比CString的效率要高不少呀。