|
c++ syntax and semantics
scoping issues
taming dynamic memory class templates function templates exceptions standard library containers
storage considerations
memory organization (e.g. contiguous memory, linked, tree)
memory usage considerations effects on the order of algorithms operations
iteration
insertion (front, back, and internal) searching removing BackInsertContainers
vectorlistdeque
RandomAccessContainers
mapmultimapset
adaptors
stackqueue
allocators
iterator concepts
ForwardIterator
BidirectionalIterator RandomAccessIterator InputIterator OutputIterator adapters
back_insert_iteratorback_inserter convenience functionostream_iteratoristream_iterator |
generic programming
parametric polymorphism vs. virtual (run-time) polymorphism
parameterizing Policies (allocation, decisions, actions) making objects and algorithms general using parameterized types, inheritance, virtual functions, and specialization introduction to template meta-programming function objects
generators
unary function objects binary function objects adaptable functions objects examples
negate
plus minus times divide adapters
function object adapters allow more complex operations and predicates
classes
binder1stbinder2nd
convenience functions
bind1st (makes a binder1st)bind2nd (makes a binder2nd)
generic algorithms
specifying iterators ranges.
input, output, both, or in-place operations. parameterization of predicates and operations. examples
fillfill_ncopytransformtransform_nsortaccumulate
|