Post

STL Tips

Containers.

STL Tips

STL

Containers


STL stands for Standard Template Library in C++. A set of template-based classes and functions.


Sequence Containers

Members can be accessed sequentially.

  • C-array
  • std::array (C++11)
    • Fixed-size array
  • std::vector
    • Dynamic array.
    • Fast rand access
    • Efficient: add to end
  • std::deque
    • Double-ended queue.
    • Efficient: add/remove both begin, end.
  • std::list
    • Double linked list.
    • Efficient: add/remove anywhere
    • No rand access
  • std::forward_list (C++11)
    • Single linked list.
    • less memory since 1-way

Associative Containers

Searching is fast O(log n) since members are sorted.

  • std::set
    • elements are unique.
  • std::multiset
    • duplicated elements are allowed.
  • std::map
    • store elements with key-value pairs
    • keys are unique
  • std::multipmap
    • duplicated keys are allowed.

Unordered Associative Containers (C++11)

Unsorted but searching is still fast since hashed. Average : O(1) Worst : O(n)

  • std::unordered_set
  • std::unordered_multiset
  • std::unordered_map
  • std::unordered_multipmap

Container Containers

Special interfaces for sequential containers.

  • std::stack (LIFO)
  • std::queue (FIFO)
  • std::priority_queue
This post is licensed under CC BY 4.0 by the author.