#include <vector-traits.h>
This structure contains three structures: one relating to dense vectors, one relating to sparse vectors implemented as sequences of pairs, and one relating to sparse vectors implemented as associative containers. These types allow us to use template specialization to use different code for different types of vectors.