我研究数据结构,我想问一下STL容器的等价物。
例如
答案 0 :(得分:6)
在C ++标准库容器中,标准本身试图不要过多地谈论实现。但是,对插入,删除,查找,范围插入等复杂性的非常具体的限制意味着大多数实现对容器使用相同类型的数据结构。关于你的一些例子:
我相信STL遵循这些实现。
答案 1 :(得分:2)
我不认为符合条件的std :: map<>因为只是一对“对”是正确的。实际上,有一个名为std :: pair<>的实用程序这真的只是一对。的std ::地图<>存储唯一键和非唯一值的方式使得可以使用类似于数组语法的语法,索引的类型可以是数字或不是。
编辑:由于 juanchopanza ,将“容器”更正为“实用程序”。
答案 2 :(得分:1)
set和multiset-binary搜索树
地图和多图 - 二叉搜索树
deque - deque
hash*
容器是作为哈希表实现的散列关联容器。
例如。 hash_map
包含使用哈希表查找的pair<key,value>
。
the individual elements are accessed as special references which mimic bool elements
答案 3 :(得分:0)
vector = dynamic array
queue = queue
stack = stack
priority_queue = priority queue based on binary heap
priority_queue can be implemented using
1. sorted array
2. sorted list ( unrolled list, skip list etc)
3. any other heap like Fibonacci heap, binomial heap
list = doubly linked list
set = set based on AVL Tree ( usually )
can implemented using any other binary balancing tree like
1. Binary Search Tree
2. Red black Tree
3. Splay Tree
slist = single linked list
map = map based on Red Black Tree ( usually )
where every node is 'pair' structure
can implemented using any other binary balancing tree like
1. Binary Search Tree
2. AVL Tree
3. Splay Tree
deque = deque
hash_set = set implemented using hash
hash_map = hash table
hash = 'Not Available', used as functor