The Problem
Let's say that we have structure "Person" with
attributes "Name", "Surname", "Age", etc. All "Persons" are kept
in an array, and usually we need to find a person by name or surname or by
another attribute.
Those who have read my article Extended
collections is familiar with the CSortedArray
class and knows its
disadvantages:
-
During sorting the array has changed the order of the array. Sometimes
is very important that you don't change the order of the array in order to
have the possibility for
binary searching.
-
It is possible sort only by one trait (individual characteristic)
We can conclude that the sorted array doesn't match our
requirements, so I decided to implement a class which behaves as a simple array, but
additionally supports binary search functionality.
The Multi Index Array
‘Multi Index Array' class supports:
- Array functionality, most of you will recognize MFC
CArray
Lookup
- a binary search that returns -1 on failure. Search
- a binary search that returns the nearest element on
failure. SearchIndexRange
- a binary search. If data is not unique then it returns
a valid array index range
Why a MFC collection and not STL?
- Too many different implementations with different extensions.
- The best libraries are made by yourself :)
Anyway, I hope that it will be useful.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.