CGAL::Inverse_index<IC>
Definition
The class Inverse_index<IC> constructs an inverse
index for a given range [i,j) of two iterators or circulators of
type IC. The first element I in the range [i,j) has the
index 0. Consecutive elements are numbered incrementally. The
inverse index provides a query for a given iterator or circulator
k to retrieve its index number. Precondition: The iterator
or circulator must be either of the random access category or the
dereference operator must return stable and distinguishable
addresses for the values, e.g. proxies or non-modifiable iterator
with opaque values will not work.
#include <CGAL/iterator.h>
Creation
Inverse_index<IC> inverse;
|
|
invalid index.
|
Inverse_index<IC> inverse ( IC i);
|
|
empty inverse
index initialized to start at i.
|
Inverse_index<IC> inverse ( IC i, IC j);
|
|
inverse index initialized with range [i,j).
|
Operations
std::size_t
|
inverse [
IC k
]
|
returns inverse
index of k. Precondition: | k has been stored in the inverse
index. |
|
|
void
|
inverse.push_back ( IC k)
|
adds k at the end of the
indices.
|
Implementation
For random access iterators or circulators, it is done in constant
time by subtracting i. For other iterator categories, an STL
map is used, which results in a log j-i query time. The
comparisons are done using the operator operator< on pointers.
See Also
CGAL::Random_access_adaptor<IC>
CGAL::Random_access_value_adaptor<IC,T>