大家帮忙看看那错了?????
#include <iostream>
#include <string>
using namespace std;
void main()
{
int errors=0;
string str( "a very long literal string ");
for (int ix=0;ix <1000000;++ix)
{
int len =str.size();
string str2=str;
if(str=str2)
++errors;
}
cout < < "string class: "
< <errors < < " errors occurred.\n ";
}
[解决办法]
if(str=str2)
-》str==str2
[解决办法]
#include <iostream>
#include <string>
using namespace std;
void main()
{
int errors=0;
string str( "a very long literal string ");
for (int ix=0;ix <1000000;++ix)
{
//int len =str.size();
string str2=str;//注意会调用拷贝构造函数
if (strcmp(str,str2))// 字符串的比较请使用strcmp,相等则返回0否则返回1或者-1
++errors;
}
cout < < "string class: "
< <errors < < " errors occurred.\n ";
}
[解决办法]
if(str==str2)比较的字符串的首地址而不是字符串的内容.
[解决办法]
同意楼上的说