Getting benefits of a single linked list and memory pool
Nowadays, we usually use std::vector when we need nonassociative and nonordered containers. This is recommended by Andrei Alexandrescu and Herb Sutter in the book C++ Coding Standards. Even those users who did not read the book usually use std::vector. Why? Well, std::list is slower and uses much more resources than std::vector. The std::deque container is very close to std::vector, but does not store values continuously.
If we need a container where erasing and inserting elements does not invalidate iterators, then we are forced to choose a slow std::list.
But wait, we may assemble a better solution using Boost!
Getting ready
Good knowledge about standard library containers is required to understand the introduction part. After that, only basic knowledge of C++ and standard library containers is required.
How to do it...
In this recipe, we'll be using two Boost libraries at the same time: Boost.Pool and a single linked list from Boost.Container...