Deriving one class from another ususally only makes sense if you want to extent functionality of the base class. That is when you overwrite virtual functions. STL doesn't have that 'virtual' approach
True. I forget that object-oriented code is not just about functionality - it is also meant to clearly express intent/ideas as well. Deriving deque from a double-linked list implies that "deque is a double-linked list", which is not correct.