两个循环的效率
下面是c++ primer 中的两个例子:
使用cstring 的:
#include <iostream>
#include <cstring>
int main()
{
int errors=0;
const char *pc="a very literal string";
for (int ix=0;ix<1000000;++ix)
{
int len=strlen(pc);
char *pc2=new char[len+1];
strcpy(pc2,pc);
if (strcmp(pc2,pc))
++errors;
delete [] pc2;
}
cout<<"C style character strings : "
<<error<<"error occurred.\n";
}
使用string类:
#include <iostream>
#include <string>
int main()
{
int errors=0;
string str("a very long literal string");
for(int ix=0;ix<100000;++ix)
{
int len=str.size();
string str2=str;
if(str!=str2)
++errors;
}
cout<<"string class;"
<<errors<<"errors occurred.\n";
}
为什么使用string类的效率好一些?