我还在学习C#,并惊讶地发现了一个 List<T> 更像是一个 std::vector 比一个 std::list。有人可以根据STL描述所有C#集合(或者如果STL比较很困难,标准概念数据类型与维基百科链接?我希望该引用将广泛有用。
最感兴趣的集合列表包括(随意添加其他集合):
- 排列
- 名单
- 数组列表
- 哈希表
- 字典
- ListDictionary
- SortedDictionary
- 排序列表
- 队列
- 堆
编辑:我刚发现这个类似的问题可能会引起关注: stl C ++和C#容器之间的映射
我还在学习C#,并惊讶地发现了一个 List<T> 更像是一个 std::vector 比一个 std::list。有人可以根据STL描述所有C#集合(或者如果STL比较很困难,标准概念数据类型与维基百科链接?我希望该引用将广泛有用。
最感兴趣的集合列表包括(随意添加其他集合):
编辑:我刚发现这个类似的问题可能会引起关注: stl C ++和C#容器之间的映射
这是我发现的(忽略旧的非泛型集合):
Array - C数组,虽然是.NET数组 能够 具有非零的起始索引。List<T> - std::vector<T>Dictionary<TKey, TValue> - unordered_map<Key, Data> HashSet<T> - unordered_set<Key>SortedDictionary<TKey, TValue> - std::map<Key, Data>SortedList<TKey, TValue> - 相当于一个 std::vector<T> 但在添加元素时使用二进制搜索+插入保持顺序。SortedSet<T> - std::set<Key>Queue<T> - std::queue<T>Stack<T> - std::stack<T>LinkedList<T> - std::list<T>.NET集合中特别缺少的是“多”变体,例如, multiset, multimap但是,他们添加了许多非常有用的线程安全集合:“并发 - ”变体,例如, ConcurrentDictionary, ConcurrentQueue等