在C#中,StringBuilder.ToString()
的复杂性是什么?是O(1),O(N)还是其他什么?
答案 0 :(得分:1)
它在框架版本之间有所不同;旧版本StringBuilder
直接使用string
,因此.ToString()
不需要额外费用:它只是直接提供数据(这可能意味着超大,但它可以使用) ;所以O(1)。
在较新的框架版本中,它使用char[]
后备缓冲区,所以现在当你.ToString()
时,它可能需要复制2 x Length
个字节,使其成为O(N)。