Regina Calculation Engine
|size_t||markedIndex () const|
|Returns the index at which this object is stored in an NMarkedVector. More...|
|template<typename T >|
|Allow only NMarkedVector to edit the array index. More...|
A base class for elements of NMarkedVector.
NMarkedVector is a vector class that provides fast, space-efficient reverse lookup of array indices (i.e., given an object, find the index at which it is stored). The way it does this is to store the array indices in the object themselves.
As a result, any type to be stored in an NMarkedVector must be derived from this class. This class provides a space to store the corresponding array index, and looks after access control so that only NMarkedVector can edit this index.
Since indices are stored with the objects, it is possible to perform this reverse lookup by querying the object alone, without any reference to the actual vector. This can be done through the public routine markedIndex().
The trade-off of course is that any object may not belong to more than one NMarkedVector at a time. Any attempt to do this will result in undefined behaviour.
See NMarkedVector for further information.
Allow only NMarkedVector to edit the array index.