C++和 Java 中的字符串串联复杂性
请考虑以下代码段:
public String joinWords(String[] words) {
String sentence = "";
for(String w : words) {
sentence = sentence + w;
}
return sentence;
}
在每个串联上,都会创建字符串的新副本,因此总体复杂度为 。幸运的是,在Java中,我们可以用一个来解决这个问题,它对于每个附加都有复杂性,那么整体复杂性将是 。O(n^2)
StringBuffer
O(1)
O(n)
虽然在C++,具有的复杂性,但我不清楚的复杂性。std::string::append()
O(n)
stringstream
在C++中,是否有类似方法的方法具有相同的复杂性?StringBuffer