4 个版本
使用旧的 Rust 2015
0.1.3 | 2015年12月12日 |
---|---|
0.1.2 | 2015年12月12日 |
0.1.1 | 2015年10月30日 |
0.1.0 | 2015年10月30日 |
#28 in #multidimensional
7KB
143 行代码(不含注释)
在 Rust 中使用任意维度的数组。
注意:尽管我已经尽可能保持实现速度快,但构造函数的时间复杂度为 O(d^2),索引的时间复杂度为 O(d),其中 d 是维度数,n 是所有维度绝对值的总和。
用法
// Create a 4d array of u32s.
// where the dimensioning is 5x3x9x2
let mut my_array: NArray<u32> = NArray::new(4, &[5,3,9,2]);
// Set some arbitrary point (getting is the same, but no `= 9`)
my_array[&[3, 1, 5, 1]] = 9;
// Create a 3d array of u32s where each index
// value is the sum of it's index coordinates
// with dimension 5x8x11.
let my_fancy_array: NArray<u32> = NArray::from_function(3, &[5, 8, 11], |n: &[usize]| {
n.to_vec().iter().fold(1, |acc, &item| acc*item as u32)
});
assert_eq!(my_fancy_array[&[3, 4, 9]], 108);
lib.rs
:
一个用于在 Rust 中管理 n 维数组的库。