gpt4 book ai didi

rust - 用零字节填充向量的最佳方法?

转载 作者:行者123 更新时间:2023-12-05 00:51:41 26 4
gpt4 key购买 nike

我需要发送一些消息(作为向量),并且它们需要以相同的长度发送。如果向量的长度不正确,我想用零填充它们。

假设我们需要所有有效载荷的长度为 100。我想我可以使用 extend 函数并执行以下操作:

let len = 100;
let mut msg = &[1,23,34].to_vec();
let diff : usize = msg.len()-len;
let padding = [0;diff].to_vec();
msg.extend(padding);

但这不会编译,因为编译器会提示 diff 不是常量。但是,做我们正在尝试做的这个简单的事情似乎相当冗长。

有没有一种简洁明了的方法来做到这一点?

最佳答案

您可以使用 std::iter::repeat():

修复您的代码
let len = 100;
let mut msg = vec![1, 23, 34];
let diff = len - msg.len();
msg.extend(std::iter::repeat(0).take(diff));

但还有更好的方法 - Vec::resize()是你需要的:

let len = 100;
let mut msg = vec![1, 23, 34];
msg.resize(len, 0);

关于rust - 用零字节填充向量的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71578765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com