CString szTemp("TEST TEST TEST TEST TEST TEST TEST TEST TESTTEST TEST TEST");CString szData="";for (int i=0;i<70000;i++) { szData=szData+ szTemp;} 处理上面的代码竟然超过一分钟,请问有没有快速的处理字符串的类?
CString szTemp("TEST TEST TEST TEST TEST TEST TEST TEST TESTTEST TEST TEST");CString szData=""; LPSTR szPointer = szData.GetBuffer(70000*szTemp.GetLength()); for (int i=0;i<70000;i++) { strcat(szPointer, szTemp); }szData.ReleaseBuffer();
测试了一下,还是超过一分钟,CPU还是100%,我的内存有1G的。
vcmute(横秋) 的方法已经很好了
嗯,我用楼主的代码试了一下,运行后等了三分钟以上都没出结果(我的机器赛扬2.0G,248M内存(8M给显存了)),等不及就结束了。改成以下代码后,用了1'53",快了不少。#include <iostream.h> #include <afx.h>void main() { CString szTemp("TEST TEST TEST TEST TEST TEST TEST TEST TESTTEST TEST TEST");CString szData=""; char* str=new char[10000000]; cout<<"申请内存空间成功"<<endl; cout<<"正在初始化变量......"<<endl; memset(str,0,10000000); cout<<"初始化完成"<<endl; cout<<"正在处理变量......"<<endl;for (int i=0;i<70000;i++) strcat(str,szTemp); cout<<"处理完成!"<<endl;}
LPSTR szPointer = szData.GetBuffer(70000*szTemp.GetLength());
for (int i=0;i<70000;i++)
{
strcat(szPointer, szTemp);
}szData.ReleaseBuffer();
#include <afx.h>void main()
{
CString szTemp("TEST TEST TEST TEST TEST TEST TEST TEST TESTTEST TEST TEST");CString szData="";
char* str=new char[10000000];
cout<<"申请内存空间成功"<<endl;
cout<<"正在初始化变量......"<<endl;
memset(str,0,10000000);
cout<<"初始化完成"<<endl;
cout<<"正在处理变量......"<<endl;for (int i=0;i<70000;i++)
strcat(str,szTemp);
cout<<"处理完成!"<<endl;}