这两条线有什么明显的区别吗?我的同事说,使用+=“更快”,但我不明白它们为什么会有所不同:
string s1 = "hello";
string s2 = " world";
// Option 1
s1 += s2;
// Option 2
s1.append(s2);为了澄清这一点,我并不是在问这两个函数之间的使用差异--我知道append()可以用于更广泛的用途,而operator +=则更加专业化。我关心的是如何对待这个特殊的例子。
发布于 2017-07-12 21:05:16
根据有关string::op+= /在线c++标准草案的标准,我不期望有任何不同:
basic_string& operator+=(const basic_string& str); (1)效果:追加调用(Str)。 (2)返回:*此。
发布于 2017-07-12 21:10:53
在Microsoft实现中,操作符+=是一个内联函数,它调用append()。以下是实现,
string& operator+= (const string& str)basic_string& operator+=(const basic_string& _Right) {
return append(_Right);
}string& operator+= (const char* s)basic_string& operator+=(_In_z_ const _Elem* const _Ptr) {
return append(_Ptr);
}string& operator+= (char c)basic_string& operator+=(_Elem _Ch) {
push_back(_Ch);
return *this;
}https://stackoverflow.com/questions/45067263
复制相似问题