Memory management 如何在Julia中表示引用和值
我有一个大的结构数组,我想在更大的数组中创建一个小的结构引用数组。我如何用朱莉娅来表达这一点 例如,下面是我的大量Foo结构数组Memory management 如何在Julia中表示引用和值,memory-management,reference,julia,Memory Management,Reference,Julia,我有一个大的结构数组,我想在更大的数组中创建一个小的结构引用数组。我如何用朱莉娅来表达这一点 例如,下面是我的大量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)] 我希望在创建多个\u foo时分配一次内存,并且只为select\u fo
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)]
我希望在创建多个\u foo时分配一次内存,并且只为select\u foo创建一个指针数组
朱莉娅是如何表达创造对某事物的引用,以及复制价值的诗句的?如何有效地创建大型结构数组
非常感谢您的代码已经满足了您的要求。如果数组的元素类型是
isbitstype
,而Foo
不是,因为它有一个非类型化字段,那么数组仅将其对象以行方式存储
一般来说,朱莉娅没有必要考虑这个问题。在将Julia数组传递到例如C中时,您只需要考虑内存布局,因为在那里您需要处理数组的原始内存。原则上,也有
Ref
,但这不适用于这种情况。和查看
/子数组
,如果您想拥有现有数组的“引用切片”——但这避免了分配新数组,而不是复制元素(如Kristofer所述,这是自动完成的)。