C ++比较字符串操作速度

时间:2016-12-08 01:49:48

标签: c++ string

假设我有3 std :: string A,B和AB。

A是任何东西,B是任何东西,AB是A和B在一起。

这些选项更快(以及为什么):

int main(){
    string A = "abc", B = "def", AB = "abcdef";
    A += B;
    cout<<A<<endl;
}

output: abcdef

int main(){
    string A = "abc", B = "def", AB = "abcdef";
    A = AB;
    cout<<A<<endl;
}

output: abcdef

我问这个是因为我有一个程序会多次执行此操作,我需要知道哪个更快,但我还没有测试输入。

我正在使用minGW for C ++ 11

1 个答案:

答案 0 :(得分:0)

所以问题基本上归结为两个作业之间的比较:

A+=B;

A=AB; 

嗯,从理论上讲,我希望+ =版本更有效率,因为你只需复制一半的字符。这假设A最初被分配了足够的空间来容纳更长的字符串而无需重新分配。