template <class T, class Less = StdLess<T> >
class SortedIndex : private MoveableAndDeepCopyOption< SortedIndex<T, Less> >
SortedIndex is a random access (vector-like) container which keeps its element sorted at all times using Less predicate. SortedIndex is relatively simple adapter over InVector - use it as reference for performace aspects.
T is required to by moveable type. Like any other NTL container, AIndex is moveable type with pick and optional deep copy transfer semantics.
int Add(const T& x)
Inserts a new item x into upper-bound position and returns its index.
int FindAdd(const T& key)
If there is already key in SortedIndex, returns its index. If there is not, inserts it and returns its index.
SortedIndex& operator<<(const T& x)
Same as Add(x).
int FindLowerBound(const T& x) const
Finds lower-bound index of x.
int FindUpperBound(const T& x) const
Finds upper-bound index of x.
int Find(const T& x) const
Returns the minimum index of element equal to x or negative number if not found.
int FindNext(int i) const
If the element at i + 1 is equal to the element at i , returns i + 1, otherwise returns negative number.
int FindLast(const T& x) const
Finds the maximum index equal to x or negative number if there is none.
int FindPrev(int i) const
If the element at i - 1 is equal to the element at i , returns i - 1, otherwise returns negative number.
void Remove(int i)
Removes the element at index i.
void Remove(int i, int count)
Removes the count elements starting at index i.
int RemoveKey(const T& x)
Removes all elements equal to x.
const T& operator[](int i) const
Returns element at index i.
int GetCount() const
Returns the cound of elements.
bool IsEmpty() const
Same as GetCount() == 0.
void Clear()
Removes all elements.
void Trim(int n)
Removes all elements starting at index n.
void Drop(int n = 1)
Removes the last n elements.
const T& Top() const
Returns the last element.
void Shrink()
Drops allocation reserve (reduces memory footprint).
ConstIterator Begin() const
Returns iterator at the begin of SortedIndex.
ConstIterator End() const
Returns iterator at the end of SortedIndex.
ConstIterator GetIter(int pos) const
Returns iterator at the index pos .
const InVector<T>& GetKeys() const
Retruns a reference to InVector of keys.
SortedIndex(const SortedIndex& s, int)
Deep copy constructor.
void Swap(SortedIndex& a)
Swaps contents of two SortedIndex containers.
|