Files
Work/common/BINARRAY.HPP
2024-08-07 09:09:36 -04:00

48 lines
1008 B
C++

#ifndef _COMMON_BINARYSEARCHARRAY_HPP_
#define _COMMON_BINARYSEARCHARRAY_HPP_
#ifndef _COMMON_ARRAY_HPP_
#include <common/array.hpp>
#endif
#ifndef _COMMON_BLOCK_HPP_
#include <common/block.hpp>
#endif
template <class T>
class BinarySearchArray
{
public:
BinarySearchArray(Array<T> &sortedVector);
virtual ~BinarySearchArray();
WORD searchItem(const T &desiredItem,T &foundItem);
WORD searchItem(const T &desiredItem,Block<T> &foundItems);
private:
WORD searchItem(const T &desiredItem,T &foundItem,LONG &foundIndex);
DWORD itemCount(void)const;
Array<T> &mSortedVector;
DWORD mItemCount;
};
template <class T>
inline
BinarySearchArray<T>::BinarySearchArray(Array<T> &sortedVector)
: mSortedVector(sortedVector), mItemCount(mSortedVector.size())
{
}
template <class T>
inline
BinarySearchArray<T>::~BinarySearchArray(void)
{
}
template <class T>
inline
DWORD BinarySearchArray<T>::itemCount(void)const
{
return mItemCount;
}
#if defined(_MSC_VER)
#include <common/binarray.tpp>
#endif
#endif