将 a 添加&str到 a的最有效方法是String什么?现在我正在分配一个新的String并推动它:
fn push_front(s: String, prefix: &str) -> String {
let prefix = prefix.to_owned();
prefix.push_str(&s);
prefix
}
Run Code Online (Sandbox Code Playgroud)
有没有更有效的方法?我String::push_front在标准库中没有看到函数。
您可以使用String::insert_str:
s.insert_str(0, prefix);
Run Code Online (Sandbox Code Playgroud)
不是为推送分配新的String 和(潜在的)分配,而是insert_str在底层向量中保留容量并将 的元素s向右移动。如果String已经有足够的容量prefix,则完全避免分配。这意味着它最多只需要一个分配,而不是两个。
| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |