HashTableBySTLVector< T > Class Template Reference

#include <TAPsHashTableBySTLVector.hpp>

List of all members.

Public Member Functions

std::vector< T > const & GetBucketNo (int i) const
int GetNoOfBuckets () const
 HashTableBySTLVector (int numberOfBuckets)
int Insert (T in, int bucketNo)
int InsertSort (T in, int bucketNo)
int Search (T key, int bucketNo)
int SearchSort (T key, int bucketNo)
 ~HashTableBySTLVector ()

Private Attributes

int m_iNoOfBuckets
std::vector< T > * m_pvBucketNo

Friends

std::ostream & operator<< (std::ostream &output, HashTableBySTLVector< T > const &o)


Detailed Description

template<typename T>
class HashTableBySTLVector< T >

Definition at line 20 of file TAPsHashTableBySTLVector.hpp.


Constructor & Destructor Documentation

template<typename T>
BEGIN_NAMESPACE_TAPs__DS HashTableBySTLVector< T >::HashTableBySTLVector ( int  numberOfBuckets  )  [inline]

Definition at line 20 of file TAPsHashTableBySTLVector.cpp.

00021     : m_iNoOfBuckets( numberOfBuckets )
00022 {   
00023     m_pvBucketNo = new std::vector<T>[m_iNoOfBuckets];
00024 }

template<typename T>
HashTableBySTLVector< T >::~HashTableBySTLVector (  )  [inline]

Definition at line 27 of file TAPsHashTableBySTLVector.cpp.

00028 {   
00029     if ( m_pvBucketNo != NULL ) {
00030         delete [] m_pvBucketNo;
00031     }
00032     m_pvBucketNo = NULL;
00033 }


Member Function Documentation

template<typename T>
std::vector<T> const& HashTableBySTLVector< T >::GetBucketNo ( int  i  )  const [inline]

Definition at line 56 of file TAPsHashTableBySTLVector.hpp.

00057     { return m_pvBucketNo[i]; }

template<typename T>
int HashTableBySTLVector< T >::GetNoOfBuckets (  )  const [inline]

Definition at line 55 of file TAPsHashTableBySTLVector.hpp.

00055 { return m_iNoOfBuckets; }

template<typename T>
int HashTableBySTLVector< T >::Insert ( in,
int  bucketNo 
) [inline]

Definition at line 42 of file TAPsHashTableBySTLVector.cpp.

00043 {
00044     m_pvBucketNo[ bucketNo ].push_back( in );
00045     return static_cast<int>( m_pvBucketNo[ bucketNo ].size() - 1 );
00046 }

template<typename T>
int HashTableBySTLVector< T >::InsertSort ( in,
int  bucketNo 
) [inline]

Definition at line 69 of file TAPsHashTableBySTLVector.cpp.

00070 {
00071     if ( !m_pvBucketNo[ bucketNo ].empty() ) {
00072         std::vector<T>::iterator pos = m_pvBucketNo[ bucketNo ].begin();
00073         for ( int i = 0; i < static_cast<int>( m_pvBucketNo[ bucketNo ].size() ); ++i, ++pos ) {
00074             if ( in < m_pvBucketNo[ bucketNo ][ i ] ) {
00075                 m_pvBucketNo[ bucketNo ].insert( pos, in );
00076                 return i;
00077             }
00078         }
00079     }
00080     m_pvBucketNo[ bucketNo ].push_back( in );
00081     return static_cast<int>( m_pvBucketNo[ bucketNo ].size() - 1 );
00082 }

template<typename T>
int HashTableBySTLVector< T >::Search ( key,
int  bucketNo 
) [inline]

Definition at line 51 of file TAPsHashTableBySTLVector.cpp.

00052 {
00053     if ( !m_pvBucketNo[ bucketNo ].empty() ) {
00054         for ( int i = 0; i < m_pvBucketNo[ bucketNo ].size(); ++i ) {
00055             if ( key == m_pvBucketNo[ bucketNo ][ i ] ) {
00056                 return i;
00057             }
00058         }
00059     }
00060     return -1;  // empty bucket or not found
00061 }

template<typename T>
int HashTableBySTLVector< T >::SearchSort ( key,
int  bucketNo 
) [inline]

Definition at line 87 of file TAPsHashTableBySTLVector.cpp.

00088 {
00089     if ( !m_pvBucketNo[ bucketNo ].empty() ) {
00090         for ( int i = 0; i < m_pvBucketNo[ bucketNo ].size(); ++i ) {
00091             if ( key >= m_pvBucketNo[ bucketNo ][ i ] ) {
00092                 if ( key == m_pvBucketNo[ bucketNo ][ i ] ) return i;
00093                 else                                        return -1;
00094             }
00095         }
00096     }
00097     return -1;  // empty bucket or not found
00098 }


Friends And Related Function Documentation

template<typename T>
std::ostream& operator<< ( std::ostream &  output,
HashTableBySTLVector< T > const &  o 
) [friend]

Definition at line 33 of file TAPsHashTableBySTLVector.hpp.

00035     {
00036         output  << "HashTableBySTLVector<" << typeid(T).name() << "> has "
00037                 << o.m_iNoOfBuckets << " bucket(s):\n";
00038         //------------------------------------------------------------
00039         // Output all bucket
00040         for ( int i = 0; i < o.m_iNoOfBuckets; ++i ) {
00041             output << "Bucket# " << i << ":";
00042             for ( int j = 0; j < static_cast<int>( o.m_pvBucketNo[i].size() ); ++j ) {
00043                 output << " " << o.m_pvBucketNo[i][j];
00044             }
00045             output << "\n";
00046         }
00047         return output;
00048     }


Member Data Documentation

template<typename T>
int HashTableBySTLVector< T >::m_iNoOfBuckets [private]

Definition at line 25 of file TAPsHashTableBySTLVector.hpp.

template<typename T>
std::vector<T>* HashTableBySTLVector< T >::m_pvBucketNo [private]

Definition at line 26 of file TAPsHashTableBySTLVector.hpp.


The documentation for this class was generated from the following files:

Generated on Mon Oct 13 11:44:58 2008 for TAPs by  doxygen 1.5.6