计算机编程语言的数据结构
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 |