我有一个很大的结构数组,我想在更大的数组中创建一个小数组对结构的引用。 我如何在朱莉娅中表达这一点?
例如,这是我的许多Foo结构体的大量数组
struct Foo
bah
end
many_foos = [Foo(i) for i in 1:100000]
这是我想在大数组中引用 Foos 的小数组
select_foos = [foo for foo in many_foos if some_condition(foo)]
我想在创建many_foos时分配一次内存,并且只为select_foos创建一个指针数组。
朱莉娅如何表达创建对某物的引用,而不是复制值? 如何有效地创建大型结构数组?
非常感谢
你的代码已经做了你想要的。仅当数组的元素类型为isbitstype
数组时,数组才会内联存储其对象,而Foo
不是,因为它具有非类型字段。
不过,一般来说,朱莉娅没有必要考虑这一点。在将 Julia 数组传递到 C 等 C 时,您只需要考虑内存布局,因为在那里您需要处理数组的原始内存。