http://msdn.microsoft.com/zh-cn/library/ms379570(v=vs.80).aspx
我知道在 .net
中,Arrays
以连续的方式存储在内存中。
我也知道 List<..>
不是这样的( 好吧...不是所有类型的列表...请看我的第二个问题)
接下来有两个问题:
我知道当一个列表中插入了4、8、16...个项后,列表会在内存中重新分配。
我还知道我可以在构造函数中发送给它
Capacity
,以便让他知道我将创建它的大小(以减少重新分配)。问题是为什么?它并没有按连续方式存储自己,那它为什么要关心重新分配呢?(它不需要找到空闲和连续的内存单元)
为什么由结构体组成的列表会被分配在连续的内存中,而由类组成的列表却不是?