Python equivalent for C++ STL vector/list containers Python equivalent for C++ STL vector/list containers python python

Python equivalent for C++ STL vector/list containers


You can use the inbuilt list - underlying implementation is similar to C++ vector. Although some things differ - for example, you can put objects of different type in one and the same list.

http://effbot.org/zone/python-list.htm

N.B.: Please keep in mind that vector and list are two very different data structures. List are heterogeneous, i.e. can store different object types, while C++ vectors are homogeneous. The data in vectors is stored in linear arrangement whereas in list is a collection of references to the type and the memory address of the variables.


Have a look at Python's datastructures page. Here's a rough translation:

  1. () => boost::Tuple (with one important distinction, you can't reassign values in a Python tuple)
  2. [] => std::vector (as the comments have aluded towards, lacks memory characteristics associated with vectors)
  3. [] => std::list
  4. {} => tr1::unordered_map or boost::unordered_map (essentially a hash table)
  5. set() => std::set


pycpp
dequedeque
PriorityQueue (or you may use heapq)priorityqueue
setunordered_set
listvector
defaultdict(int)unordered_map
liststack
dequequeue
dict .get(val,0)unordered_map

in py >= 3.7, dict remember insert order. https://stackoverflow.com/a/51777540/13040423


In case you need TreeMap / TreeSet

https://github.com/grantjenks/python-sortedcontainers