This document provides an introduction to array keys.
A key is used by an array for sorting and finding elements and can also be used to locate the insertion position for new elements.
The characteristics of a key are defined by a key object, constructed from
one of the three concrete classes: TKeyArrayFix
, TKeyArrayVar
and TKeyArrayPak
.
In general, the choice of key class depends on the type of array being used
and the specific member function of that array.
TKeyArrayFix
is used by the following functions accessible
through the CArrayFixFlat
and CArrayFixSeg
classes:
TKeyArrayVar
is used by the following functions accessible
through the CArrayVarFlat
and CArrayVarSeg
classes:
TKeyArrayVar
is also used by CArrayPakFlat::SortL()
.
TKeyArrayPak
is used by the following functions accessible
through the CArrayPakFlat
class:
The concrete classes are all derived from the abstract base class TKey
that
encapsulates the characteristics of a key and defines the basic behaviour
of keys. A class such as TKeyArrayFix
provides an implementation
for specific arrays or types of array.
A key object is not a component of an array class but is constructed separately and passed, as an argument, to the appropriate array class member function. A key definition is not an integral part of an array, but is used by an array.
A TKey
derived object is also passed as an argument to
the User::BinarySearch()
and User::QuickSort()
functions.
An array can use various different key definitions during its life.
The characteristics of a key as defined by the base TKey
class
are:
The type of data forming the key.
The type of comparison to be made between two keys.
The length of the key within an array element.
The location of the key within an array element.
See also: