我在从字符串中删除字符的所有实例时遇到问题.由于字符的删除基于循环条件,因此C++字符串函数擦除(或删除)产生的结果是不同的.看看代码:
int main()
{
string s="beabeefeab";
string s2=s;
cout<<"s[0] "<<s[0]<<endl;
s.erase(remove(s.begin(),s.end(),'b'),s.end()); //statement 1
cout<<s<<endl;
s=s2;
s.erase(remove(s.begin(),s.end(),s[0]),s.end()); //statement 2
cout<<s<<endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
声明1和声明2产生的输出应该相同但结果是不同的.怎么样和为什么?