string :: operator + =的问题

pre*_*uin 5 c++ string

我试图将两个字母附加到一个字符串,但似乎字符串没有改变:

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)

Ser*_* K. 7

通过添加,'a' + 'b'您将有2个字符加在一起形成另一个字符.然后将其添加到字符串中+=.

此代码将执行您想要的操作:

std::string str;
( str += 'a' ) += 'b';

std::cout << str;
Run Code Online (Sandbox Code Playgroud)