ide*_*n42 4 pointers vector rust
在 C 中,您可以使用指针偏移量来获取数组中元素的索引,例如:
index = element_pointer - &vector[0];
给定对数组中元素的引用,这在 Rust 中也应该是可能的。
虽然 Rust 能够从向量元素获取内存地址,将它们转换为usize,然后减去它们 - 在 Rust 中是否有更方便/惯用的方法来做到这一点?
usize
Chr*_*son 5
没有更简单的方法了。我认为原因是很难保证任何给你答案的操作或方法只允许你将它与 a Vec(或更可能的切片)和该集合中的某些内容一起使用;Rust 不希望您通过对不同向量的引用来调用它。
Vec
更惯用的做法是从一开始就避免这样做。由于生命周期的原因,您无法将引用存储到Vec任何非常永久的地方Vec,因此无论如何,当您获得引用时,您可能会方便地使用索引。
特别是,例如,在迭代时,您可以使用enumerate来迭代pairs (index, &item)。
enumerate
(index, &item)
归档时间:
9 年,9 月 前
查看次数:
2272 次
最近记录:
9 年 前