All std:: classes and functions could be wrapped by classes and functions in a namespace contract::std:: declaring contracts for all the STL classes and functions.
The contract::std:: namespace should have the exact same structure as std:: (so it is easy to use for C++ programmers familiar with STL).
For example a contract::std::vector class can wrap std::vector providing the exact same API but adding contracts to it (see the n1962 vector example).
Note:
1) The contracts could assert all the STL standard guarantees.
2) Postcondition and invariant checking might not add much value given that STL implementations are usually well tested, documented, and work well.
3) Precondition checking might instead be valuable as they will check that the STL is not misused by the callers.
I could use assertion-requirements to disable 1) and 2) but not 3) and for STL only.
Headers should be named after STL header and be in contract/std, for example <contract/std/vector.hpp> for <vector>.
This would be a very interesting task to test the library and maybe even more if concept definitions are added so I can also program full concepts for the STL together with preconditions, postconditions, and class invariants.
However, the contracted STL might be significantly slower to compile and run. Generally the STL is know to work well (?) so it is not clear if programmers would really want to use the contracted STL.