1. STL Components
    1. Containers
    2. Iterators
    3. Algorithms
  2. Containers
    1. Sequence containers
      1. vector
      2. deque
      3. list
    2. Associative containers
      1. set
      2. multiset
      3. map
      4. multimap
  3. Sequence Containers
    1. Vectors
      1. dynamic array
      2. fast
        1. appending
        2. remove last element
        3. the end of array
      3. slow
        1. insert in the middle
        2. insert at the beginning
        3. remove the middle element
        4. remove the first element
        5. not the end of array
    2. Deque
      1. dynamic array
      2. fast
        1. insert at the end and beginning
        2. remove at the end and beginning
        3. both end of array
      3. slow
        1. insert elements in the middle
        2. remove elements in the middle
        3. in the middle of array
    3. List
      1. double link list
      2. advantage
        1. insertion
        2. removal
      3. disadvantage
        1. navigate
        2. travel
    4. Strings
      1. basic_string<>
      2. string
      3. wstring
    5. Ordinary Arrays
  4. Associative Containers
    1. sets
    2. multiset
    3. map
    4. multimap
  5. Container Adapters
    1. Stacks
    2. Queues
    3. Priority Queues
  6. Iterators
    1. operator*
    2. operator++
    3. operator--
    4. operators== and !=
    5. operator=
  7. Iterator Categories
    1. Bidirectional iterator
      1. list
      2. set
      3. multiset
      4. map
      5. multimap
    2. Random access iterator
      1. vector
      2. deque
  8. Algorithms
  9. Iterator Adapters
    1. Insert Iterator
      1. front_inserter
      2. back_inserter
      3. inserter
    2. Stream Iterator
    3. Reverse Iterator
  10. Function Objects
    1. for_each
    2. definition
    3. advantage
      1. Function objects are "smart functions."
      2. each function object has its own type
      3. function objects are usually faster than ordinary functins
  11. Container elements
    1. requirement for container elements
      1. An element must be copyable by a copy constructor
      2. An element must be assignable by the assignment operator
      3. An element must be destroyable by a destructor
      4. the default constructor must be available
      5. the test of quality with operator == must be defined
      6. for associative containers the operation of the sorting criterion must by provided by the elements.
    2. value semantics or reference semantic