#include #include "dict.h" using namespace std; template < class TKey, class TData > TData& dict< TKey, TData >::operator[] ( TKey key ) { unsigned long int i; for ( i = 0; i < this->itemCount; i++ ) { if ( key == this->keys[i] ) return this->data[i]; } if ( this->itemCount == this->keysLength ) { TKey *tempKeys = new TKey[this->itemCount]; TData *tempData = new TData[this->itemCount]; tempKeys = (TKey*) memcpy( tempKeys, this->keys, sizeof( TKey )*this->itemCount ); tempData = (TData*) memcpy( tempData, this->data, sizeof( TData )*this->itemCount ); this->keys = new TKey[ this->itemCount + 10 ]; this->data = new TData[ this->itemCount + 10 ]; this->keys = (TKey*) memcpy( this->keys, tempKeys, sizeof( TKey )*this->itemCount ); this->data = (TData*) memcpy( this->data, tempData, sizeof( TData)*this->itemCount ); delete[] tempKeys; delete[] tempData; this->keysLength += 10; this->dataLength += 10; } this->itemCount++; this->keys[ this->itemCount - 1 ] = key; return this->data[ this->itemCount - 1 ]; } template < class TKey, class TData > dict< TKey, TData >::dict ( ) { this->keys = new TKey[1]; this->data = new TData[1]; this->keysLength = 1; this->dataLength = 1; this->itemCount = 0; } template < class TKey, class TData > dict< TKey, TData >::~dict ( ) { delete[] this->keys; delete[] this->data; }