繁体   English   中英

C#等价的C ++向量,具有连续的内存?

[英]C# equivalent of C++ vector, with contiguous memory?

什么是C#等价的C ++向量?

我正在寻找这个功能:

拥有连续存储内存的动态数组,对访问与标准数组没有性能损失。

我在搜索,他们说.NET equivalent to the vector in C++ is the ArrayList ,所以:

ArrayList是否具有连续的内存功能?

您可以使用List<T> ,当T是值类型时,它将被分配在连续的内存中,如果T是引用类型,则不会是这种情况。

例:

List<int> integers = new List<int>();
integers.Add(1);
integers.Add(4);
integers.Add(7);

int someElement = integers[1];

使用List<T> 在内部它使用数组,并且数组确实使用连续的内存。

首先,远离ArraylistHashtable 这些类被认为是不赞成的,有利于泛型。 它们仍然是用于遗留目的的语言。

现在,您要找的是List<T>类。 请注意,如果T是值类型,您将具有连续内存,但是如果T是引用类型则不会,原因显而易见。

C#有很多引用类型。 即使容器连续存储引用 ,对象本身也可能分散在堆中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM