| |
container Data.
| |
| |
container Window.
| |
| |
class Traits.
|
| |||||
A segment tree is defined, such that the subtree of each
vertex is of the same type prototype
sublayer_tree is. We assume that the dimension of the tree is . This means, that sublayer_tree is a prototype of a -dimensional tree. All data items of the -dimensional segment tree have container type Data. The query window of the tree has container type Window. Traits provides access to the corresponding data slots of container Data and Window for the -th dimension. The traits class Traits must at least provide all functions and type definitions as described in Section . The template class described there is fully generic and should fulfill the most requirements one can have. In order to generate a one-dimensional segment tree instantiate Tree_anchor<Data, Window> sublayer_tree with the same template parameters Data and Window Segment_tree_d is defined. In order to construct a two-dimensional segment tree, create Segment_tree_d with a one-dimensional Segment_tree_d with the corresponding Traits of the first dimension. Precondition: Traits::Data==Data and Traits::Window==Window.
|
|
| |
The tree is constructed according to the data items in the sequence between the element pointed by iterator first and iterator last. |
|
| |
win, , . All elements that intersect the associated -dimensional interval of win are placed in the associated sequence container of OutputIterator and returns an output iterator that points to the last location the function wrote to. In order to perform an inverse range query, a range query of width has to be performed. | ||
|
| |
All elements that enclose the associated -dimensional interval of win are placed in the associated sequence container of OutputIterator and returns an output iterator that points to the last location the function wrote to. | ||
|
| The tree structure is checked. For each vertex either the sublayer tree is a tree anchor, or it stores a (possibly empty) list of data items. In the first case, the sublayer tree of the vertex is checked on being valid. In the second case, each data item is checked weather it contains the associated interval of the vertex and does not contain the associated interval of the parent vertex or not. True is returned if the tree structure is valid, false otherwise. |
Protected Operations
|
| |
returns true, if the interval of object is contained in the interval of win. False otherwise. | ||
|
| returns false. |
A -dimensional segment tree is constructed in log time. An inverse range query is performed in time log, where is the number of reported intervals. The tree uses log storage.