It basically sounds like pointwise data in three-dimensional space. There are many solutions to this problem, and choosing the best depends on the range and distribution of your indexes, as well as your data access patterns. The latter is especially important - do you arbitrarily choose a set of values as your key and want to see if there are data quadrants there, or do you access them more regularly? Different data structures offer very different costs for regular and random access.
For description, I will call your data quadrants {X, Y, Z, W}, where {X, Y, Z} is your key, and W is the value associated with this key.
Xmin-to-Xmax, Ymin-to-Ymax, Zmin-to-Zmax, , X, Y Z quad, , 3D-, X, Y Z, W, .
- , , , (, 25% ), 3D-, W, "". , X, Y, Z , W (-1, , , INT_MAX, ), W is_present true/false , .
, , , , . : http://en.wikipedia.org/wiki/Octree. , 8 . , ; 8 - . , . , ( ), , .