最佳答案
我想用在运行时确定的特定大小初始化一个零向量。
在 C 语言中,它是这样的:
int main(void)
{
uint size = get_uchar();
int A[size][size];
memset(A, 0, size*size*sizeof(int));
}
下面是我尝试用 Rust 编写的 helper 函数,但我认为分片语法 0..size
冒犯了编译器。此外,它看起来比 C 版本更冗长。还有比这更惯用的方法吗?
fn zeros(size: u32) -> Vec<i32> {
let mut zero_vec: Vec<i32> = Vec::with_capacity(size);
for i in 0..size {
zero_vec.push(0);
}
return zero_vec;
}
我发誓,老医生用来解释 from_elem()
方法 给你和没有一个排列的 [0 ; size]
注释似乎工作
最后,我想把这个问题放到一个子串搜索算法中:
pub fn kmp(text: &str, pattern: &str) -> i64 {
let mut shifts = zeros(pattern.len()+1);
}