Is there a generalized name for this sort of problem, or a similar type of problem that I could find insight from?
This problem is an interval-tree or segment-tree problem. Specifically, the tree/data-structure needs to perform aggregate on overlap operations. This means that when two intersecting ranges are inserted into the structure, they lookup value for a point within both ranges is equivalent to val(range A) + val(range B). The '+' operation could be addition if the values were integers, or in the case of sets it would be a union operation.
What is an ideal implementation given the constraints
A self-balancing Binary Search Tree (such as a Red-black tree, or Scapegoat tree) built to optimize searches based on ranges. Insert operations would additionally intersecting ranges as necessary to produce the correct return values. The ways in which the ranges are split varies by your requirements but is typically either through "joining" which discards the information about the original ranges but has a smaller footprint or "splitting" from which the original ranges can still be deduced.
Given an ideal implementation, do you have advice for using it in C++
See boost::icl. (Boost interval container library)