subclassing standard containers?
Yes it is horrible.

The only time where inheritance over composition makes any sense is when you want to take advantage of the empty baseclass optimization. A container is not a empty class.

In a struct all fields are public so you don't need to public inherit anyway. 

None of the methods of the std containers are virtual so you cannot override them. Which in turn means you cannot prevent user code from invalidating any invariants you want to impose. This last is an issue with public member field as well.

If you ever want to change containers to one with a different api you have to change all code dealing with the container part instead of only changing the type in the header and the implementation of the wrapper functions.