什么是C#等价的C++向量?
我正在寻找这个功能:
拥有连续存储内存的动态数组,对访问与标准数组没有性能损失.
我在搜索他们说.NET equivalent to the vector in C++ is the ArrayList
,所以:
ArrayList是否具有连续的内存功能?
Dar*_*rov 91
你可以使用a List<T>
和when T
是一个值类型,它将被分配在连续的内存中,如果T
是引用类型则不是这种情况.
例:
List<int> integers = new List<int>();
integers.Add(1);
integers.Add(4);
integers.Add(7);
int someElement = integers[1];
Run Code Online (Sandbox Code Playgroud)
Bal*_*a R 16
用List<T>
.在内部它使用数组,并且数组确实使用连续的内存.
Mat*_*sca 16
首先,远离Arraylist
或Hashtable
.这些类被认为是不赞成的,有利于泛型.它们仍然是用于遗留目的的语言.
现在,你要找的是List<T>
班级.请注意,如果T是值类型,您将具有连续内存,但是如果T是引用类型则不会,原因显而易见.
看起来CLR / C#可能很快将获得对Vector <>的更好支持。