C ++字符串追加的时间复杂度-string1 + = string2;

时间:2019-08-23 18:30:01

标签: c++ string time-complexity

假设s1是长度为l1的字符串,而s2是长度为l2的字符串,那么以下代码的时间复杂度是多少?

s1 += s2;

我的计时测试显示为O(l2)。但是,C ++规范对此并不十分清楚。

2 个答案:

答案 0 :(得分:3)

cppreference非常具体。

operator +=的时间复杂度在右侧操作数的大小上是线性的。

答案 1 :(得分:1)

即使容量是 10000,在第 10000 次插入时也会重新分配当前容量的两倍,仍然收敛到 O(n)