【发布时间】:2015-02-05 21:47:58
【问题描述】:
在 Effective STL 的第 1 项中,Herb Sutter 区分了连续容器和基于节点的容器。向量、字符串和双端队列是连续的,而链表和关联容器是基于节点的。这对于性能考虑(从开始、中间或结束的插入或删除速度、迭代、大内存分配考虑等)很有用。
特别是,我对List<T> 和以下列表感兴趣:BaseList : CollectionBase, ITypedList。
我在某处听说List<T> 更像是std::vector<T>,而不是链表。那么这两个 C# 容器是连续的吗?除了LinkedList<T>,还有哪些节点容器可用? MSDN 上有没有比较的地方,也许?
【问题讨论】:
-
您可以查看您感兴趣的每个集合的文档,以了解数据结构的概述,您应该能够确定哪些是连续的,哪些是基于节点的。
-
@Servy 当然,我确实先检查了文档。它没有我想要的那么明确。
-
那么您需要更具体地了解您对哪种数据结构感到好奇,您对它的实现了解什么,以及您不了解什么'不了解它的实现。
标签: c# list containers