计算机编程语言的数据结构
C++的10种基本容器(是对算法导论中的标准实现)
数据类型 | 存储类型 | 容器名称 | 说明 |
单值 | 数组 | vector<T> |
|
链表 | list<T> |
| |
树 | set<T> ,multiset<T> |
| |
哈希表 | unordered_set<T>, unordered_multiset<T> |
| |
键值对 | 数组 | 因为语言的固有特点Java,C#有项,C++没有 | |
链表 | -- |
| |
树 | map<K,V>,multimap<K,V> |
| |
哈希表 | unordered_map<K,V>, unordered_multimap<K,V> |
|
C#中的9大容器
C#对象的特殊性(总是相当于C++中的new),决定了与C++表示方式的不同
数据类型 | 存储类型 | 容器名称 | 说明 |
单值 | 数组 | List<T>,Stack<T>,Queue<T> |
|
链表 | LinkedList<T> |
| |
树 | SortedSet<T> |
| |
哈希表 | HastSet<T> |
| |
键值对 | 数组 | SortedList<K,V> |
|
链表 | 用这种方式表示没有意义上 | ||
树 | SortedDictionary<K,V> |
| |
哈希表 | Dictionary<K,V> |
|
Java 中12种的容器(都是作为中间语言与C#很大的类似性)
数据类型 | 存储类型 | 容器名称 | 说明 |
单值 | 数组 | ArrayList<T>,Vector<T>,EnumSet<T> |
|
链表 | LinkedList<T> |
| |
树 | TreeSet<T> |
| |
哈希表 | HastSet<T>,linkedHastSet<T> |
| |
键值对 | 数组 | EnumMap |
|
链表 | 理由C# | ||
树 | TreeMap<K,V> |
| |
哈希表 | HastMap<K,V>,LinkedHastMap<K,V> HastTable<K,V> | HastTable<K,V>因为历史原因 |
Python 中的容器(第三方库numpy在python 的特殊地位,决定了这个库的重要性,opencv对python的封装就用了numpy 当做接口数据)
数据类型 | 容器名称 | 说明 |
单值 | [] | 链表 |
() | 链表 | |
Numpy,array | 数组 | |
键值对 | {} | 等效于java中的HastMap C# 中的Dictionary |