C 比较字符串操作速度



我有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

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

我正在为C 11

使用mingw

,因此问题基本上归结为两个作业之间的比较:

A+=B;

A=AB; 

好吧,从理论上讲,我希望 =版本会更有效,因为您必须仅复制一半的字符。这是假设A最初是用足够的空间分配的,可以容纳更长的字符串而无需重新分配。

最新更新