如何在朱莉娅中表达引用和值



我有一个很大的结构数组,我想在更大的数组中创建一个小数组对结构的引用。 我如何在朱莉娅中表达这一点?

例如,这是我的许多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 时,您只需要考虑内存布局,因为在那里您需要处理数组的原始内存。

最新更新