buffer - 在 Rust 中创建字节缓冲区

标签 buffer rust slice mutable

<分区>

访问 &mut [u8] 的最有效方法是什么?现在我正在从 Vec 借用,但更直接地分配缓冲区会更容易。

我现在能做的最好的事情是预分配一个向量,然后延长它的长度,但这绝不是惯用的。

    let mut points_buf : Vec<u8> = Vec::with_capacity(points.len() * point::POINT_SIZE);
    for _ in (0..points_buf.capacity()) {
        points_buf.push(0);
    }
    file.read(&mut points_buf[..]).unwrap();

最佳答案

您可以直接创建具有给定大小的 vec:

vec![0; num_points]

或者使用迭代器:

repeat(0).take(num_points).collect::<Vec<_>>()

关于buffer - 在 Rust 中创建字节缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30749918/

相关文章:

c++ - 传递的顶点/索引缓冲区引用不起作用

java - 读取所有字符时是否有理由使用 BufferedReader 而不是 InputStreamReader?

go - 是 slice2 := slice1 equal to slice2 := slice1[:] in GoLang?

python - 使用 del 和切片是否会先创建一个新对象,然后再删除?会就位吗?

java - 用于复制文件的 native JDK 代码

c - 在 C 中打开 .tgz 文件

rust - 将 panic 重定向到指定的缓冲区

methods - 什么类型对方法的 `self` 参数有效?

rust - 如何使结构可调用?

excel - 分割多维数组然后对其进行切片