我试图使用插入符号运算符(^
)将整数提升到一个幂,但我得到了令人惊讶的结果,例如:
assert_eq!(2^10, 8);
Run Code Online (Sandbox Code Playgroud)
搜索DuckDuckGo和谷歌没有透露任何相关信息.
如何在Rust中执行取幂?
我想创建一个Vec<T>
并为它腾出一些空间,但我不知道该怎么做,令我惊讶的是,官方文档中几乎没有关于这个基本类型的内容.
let mut v: Vec<i32> = Vec<i32>(SIZE); // How do I do this ?
for i in 0..SIZE {
v[i] = i;
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以创建一个空的Vec<T>
并用push
es 填充它,但我不想这样做,因为我不总是知道,当在索引处写入值时i
,如果已经插入了一个值.出于明显的性能原因,我不想写下这样的内容:
if i >= len(v) {
v.push(x);
} else {
v[i] = x;
}
Run Code Online (Sandbox Code Playgroud)
当然,我也不能使用vec!
语法.
当我创建一个向量时,长度和容量是相同的。这些方法有什么区别?
fn main() {
let vec = vec![1, 2, 3, 4, 5];
println!("Length: {}", vec.len()); // Length: 5
println!("Capacity: {}", vec.capacity()); // Capacity: 5
}
Run Code Online (Sandbox Code Playgroud)