The Standard Template Library (STL) is used in a large number of C++ applications, but doesn't always get much of a look-in for many embedded projects, largely due to its use of the heap for many of its container classes.
I've added a library that, amongst other things, defines containers with statically allocated storage. The library makes no use of the heap and does not utilise RTTI. All storage is defined at compile time. (It's also very cache friendly due to the storage for all containers being contiguous).
It does make use of some of the non-container aspects of the STL and therefore requires that a version of the STL is available to the Arduino project. A suitable implementation may be found here.
Apart from containers, the library provides many other templated features. To find out more visit www.etlcpp.com (Be aware that the documentation is a little behind at the moment and doesn't mention some of the lastest hashing containers).
The library is intended to be generally useful across many platforms, and has been extensively unit tested (current count is 1154 tests) with Microsoft and GCC compilers. That said the amount of testing on the Arduino platform has so far been limited to a couple of simple examples on my Genuino Zero, so be prepared for possible compilation issues. If you find anything odd then raise it on the github page.
An example 'BlinkList' is supplied to get you started. This builds on the 'Blink' demo by creating two lists of delay times, and cycling through them consecutively.
To install it, search for 'Embedded Template Library' in the library manager.