forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
Containers
thestinger edited this page Feb 17, 2013
·
57 revisions
Containers in the standard libraries:
- Mutable:
-
core::dlist
(doubly-linked list - uses @ but avoiding that would requireunsafe
) -
core::vec
(dynamic array) -
core::str
(string implemented on top of the same dynamic array ascore::vec
) -
core::hashmap
(hash table - set and map) -
std::treemap
(balanced binary search tree - set and map) -
std::smallintmap
(dense array-based map) -
std::deque
(ring buffer) -
std::priority_queue
(binary heap) std::bitv
-
- Persistent:
-
std::list
(singly-linked list) -
std::fun_treemap
(unbalanced binary search tree - not very useful)
-
Obsolete (to be removed):
-
std::dvec
(~[]
in a mut field) - #4985 -
std::oldmap
(chaining-based hash table using lots of @ and mut fields) - #4986 -
std::oldsmallintmap
(likestd::smallintmap
, but with mut fields and a @ box) - #4738
Wanted:
- radix trie (IntMap, IntSet - perhaps more generic)
- B-tree
- small vector (3-word struct storing small arrays on the stack) - #4991
- LRU cache (doubly-linked list with a hash table pointing at the nodes) - #4988
- persistent balanced binary search tree (map and set) - #4987
- persistent heap
- persistent hash-based map/set
- compile-time lookup tables via syntax extensions - #4864
- smallintmap should implement a set type - #4984
- Add range searches to TreeMap/TreeSet - #4604
- LinearMap fields should be private - #4764
- add shrink_to_fit method for vec and hashmap - #4960
- Do something about std::deque - #2343
- Deque shouldn't require copyable types - #3748
- split the Map and Set traits into Map, MutableMap, PersistentMap and Set, MutableSet, PersistentSet - #4989
- Move dlist to std - #3549
- benchmark whether 1.5x is a better growth factor for vectors - #4961