在Rust中,可以使用sort_by_key
方法来获得对向量进行排序的索引。该方法接受一个闭包作为参数,闭包中定义了排序的规则。以下是一个示例代码:
fn main() {
let mut vec = vec![5, 2, 9, 1, 7];
let mut indexes: Vec<usize> = (0..vec.len()).collect();
vec.sort_by_key(|&i| vec[i]);
indexes.sort_by_key(|&i| vec[i]);
println!("Sorted indexes: {:?}", indexes);
}
在上述代码中,我们首先创建了一个向量vec
和一个索引向量indexes
,索引向量的初始值为0到vec.len()
的范围。然后,我们使用sort_by_key
方法对vec
进行排序,排序规则是根据向量中的元素值。接着,我们使用相同的排序规则对索引向量indexes
进行排序。最后,打印出排序后的索引向量。
这样,我们就可以通过索引向量来获取原始向量的排序结果。在实际应用中,可以根据需要修改闭包中的排序规则,以适应不同的排序需求。
腾讯云相关产品和产品介绍链接地址:
请注意,以上仅为示例产品,实际应用中可以根据具体需求选择适合的腾讯云产品。
领取专属 10元无门槛券
手把手带您无忧上云