CGAL::Inverse_index<IC>
Definition
The class Inverse_index<IC> constructs an inverse
index for a given range [) of two iterators or circulators of
type IC. The first element in the range [) has the
index 0. Consecutive elements are numbered incrementally. The
inverse index provides a query for a given iterator or circulator
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 .
|
Inverse_index<IC> inverse ( IC i, IC j);
|
|
inverse index initialized with range [).
|
Operations
std::size_t
|
inverse [
IC k
]
|
returns inverse
index of . Precondition: | has been stored in the inverse
index. |
|
|
void
|
inverse.push_back ( IC k)
|
adds at the end of the
indices.
|
Implementation
For random access iterators or circulators, it is done in constant
time by subtracting . For other iterator categories, an STL
map is used, which results in a log 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>