面试题答案
一键面试- 容量调整时机:
- 当
String
的当前容量不足以容纳新添加的字符时,会触发容量调整。
- 当
- 调整大致过程:
- 申请新空间:通常会申请一块比当前容量大的新内存空间。Rust一般会按照一定的增长策略来确定新空间大小,常见的策略是翻倍当前容量(如果翻倍后仍不够,则分配足够容纳新内容的空间)。
- 复制数据:将原
String
中的数据从旧内存空间复制到新申请的内存空间。 - 释放旧空间:完成数据复制后,释放原来的旧内存空间。这样,
String
就成功调整了容量以容纳新添加的字符。
String
的当前容量不足以容纳新添加的字符时,会触发容量调整。String
中的数据从旧内存空间复制到新申请的内存空间。String
就成功调整了容量以容纳新添加的字符。