These questions seem pretty good!
In the max heap question, I'd argue that add should take a parameter by value, rather than a const reference, since this prevents having to needlessly copy temporaries (and is less verbose than overloading for T&&).
List of iterator categories is missing input iterators.