#include <TAPsHashTableBySTLVector.hpp>
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) |
Definition at line 20 of file TAPsHashTableBySTLVector.hpp.
| 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 }
| 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 }
| std::vector<T> const& HashTableBySTLVector< T >::GetBucketNo | ( | int | i | ) | const [inline] |
| int HashTableBySTLVector< T >::GetNoOfBuckets | ( | ) | const [inline] |
| int HashTableBySTLVector< T >::Insert | ( | T | 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 }
| int HashTableBySTLVector< T >::InsertSort | ( | T | 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 }
| int HashTableBySTLVector< T >::Search | ( | T | 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 }
| int HashTableBySTLVector< T >::SearchSort | ( | T | 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 }
| 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 }
int HashTableBySTLVector< T >::m_iNoOfBuckets [private] |
Definition at line 25 of file TAPsHashTableBySTLVector.hpp.
std::vector<T>* HashTableBySTLVector< T >::m_pvBucketNo [private] |
Definition at line 26 of file TAPsHashTableBySTLVector.hpp.
1.5.6