Choosing the Right C++ Containers for Performance