c ++字符串append和operator + =之间的区别

时间:2017-07-12 20:48:11

标签: c++ string string-concatenation

两条线之间有明显的区别吗?我的同事说使用+ =“更快”,但我不明白为什么他们应该有所不同:

string s1 = "hello";
string s2 = " world";

// Option 1
s1 += s2;

// Option 2
s1.append(s2);

为了澄清,我不是在询问这两个函数之间的使用差异 - 我知道append()可以用于更广泛的用途和{{1}有点更专业。我关心的是如何处理这个特定的例子。

2 个答案:

答案 0 :(得分:8)

根据有关string::op+= / online c++ standard draft的标准,我不希望有任何不同之处:

  

的basic_string&安培; operator + =(const basic_string& str);

     

(1)效果:调用追加(str)。

     

(2)返回:* this。

答案 1 :(得分:2)

在Visual Studio 2017中,operator + =是一个内联函数,它调用append()。