You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust 如何基于现有向量长度生成包含1到K的整数向量

Rust生成1到原向量长度的整数向量实现方法

最优实现(仅需调用原向量长度)

不需要遍历原向量,直接通过长度生成目标序列,性能最高:

// 你的原始向量
let original_vec = vec![val1, val2, val3, /* 剩余元素 */ valK];
// 获取原始向量长度K
let k = original_vec.len();
// 生成1到K的整数向量
let target_vec: Vec<usize> = (1..=k).collect();

说明:1..=k是Rust 1.26版本后支持的闭区间迭代器语法,刚好覆盖1到K的所有整数,通过collect()方法直接转换为Vec类型,需显式指定目标Vec的元素类型。如果需要兼容更早版本的Rust,可替换为半开区间写法:(1..k+1).collect()

兼顾原向量遍历的实现

如果生成序列的同时需要处理原向量的元素,可结合enumerate方法实现:

let target_vec: Vec<usize> = original_vec
    .iter()
    .enumerate()
    .map(|(index, _element)| index + 1)
    .collect();

自定义整数类型

如果需要i32、i64等其他类型的整数序列,只需加一步类型转换即可:

// 生成元素为i32类型的目标向量
let target_vec: Vec<i32> = (1..=k).map(|num| num as i32).collect();

内容的提问来源于stack exchange,提问作者Ziva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:57:01