我试图将两个字母附加到一个字符串,但似乎字符串没有改变:
void fun()
{
string str;
str += 'a' + 'b';
cout << str;
}
Run Code Online (Sandbox Code Playgroud)
我检查了STL的源代码并找到了执行operator+=,但我仍然不知道为什么.
basic_string&
operator+=(_CharT __c)
{
this->push_back(__c);
return *this;
}
Run Code Online (Sandbox Code Playgroud)
通过添加,'a' + 'b'您将有2个字符加在一起形成另一个字符.然后将其添加到字符串中+=.
此代码将执行您想要的操作:
std::string str;
( str += 'a' ) += 'b';
std::cout << str;
Run Code Online (Sandbox Code Playgroud)