Array keys

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:

  • Sort()

  • InsertIsqL()

  • Find()

  • FindIsq()

TKeyArrayVar is used by the following functions accessible through the CArrayVarFlat and CArrayVarSeg classes:

  • Sort()

  • InsertIsqL()

  • Find()

  • FindIsq()

TKeyArrayVar is also used by CArrayPakFlat::SortL() .

TKeyArrayPak is used by the following functions accessible through the CArrayPakFlat class:

  • InsertIsqL()

  • Find()

  • FindIsq()

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: