现在,我有了一种用于在数组上动态分配内存的算法:
尽管将元素复制到新分配的数组会产生额外的开销,但是这是用于动态内存分配的相当快的算法。
什么是更快List<T>的算法,或者这样的基于数组的算法?您会建议使用什么?
List<T>
不List<T>使用简单的阵列作为内部数据结构?
要回答您的问题:
没错,C#的List<T>实现使用内部数组
IEnumerable<T>
foreach
等等
因此,我要请您使用List<T>而不是您自己的列表。
哦,顺便说一句,如果您想要 Microsoft 的 源代码List<T>,那么这里是
List.cs
编辑
EnsureCapacityin 的源代码List<T>是:
EnsureCapacity
// Ensures that the capacity of this list is at least the given minimum // value. If the currect capacity of the list is less than min, the // capacity is increased to twice the current capacity or to min, // whichever is larger. private void EnsureCapacity(int min) { if (_items.Length < min) { int newCapacity = _items.Length == 0? _defaultCapacity : _items.Length * 2; if (newCapacity < min) newCapacity = min; Capacity = newCapacity; } }