Let's say I form a composite_key of three integer members for a boost::multi_index_container. The keys will span every combination of three integers within some range ({0, 0, 0}, {0, 0, 1}, {0, 0, 2}, etc). Internally, does boost store each of these combinations of integers as a key such that the total number of keys would be N x N x N, where N is the number of elements in the range, and where the hashed key may be 3x the number of bytes. Or, does it try to conserve memory by internally using, say, a tree of hash tables that would cut down on the total indices byte size?
I'm trying to figure out if creating the tree of hash tables myself would reduce the overall index byte size.