All pastes #256347 Raw Edit

c2thunes

public cpp v1 · immutable
#256347 ·published 2006-11-24 02:32 UTC
rendered paste body
#include <iostream>#include <cstdlib>#include <string>#include <vector>#define FALSE 0#define TRUE !FALSEusing namespace std;template < class TKey, class TData >class dict{	TKey *keys;	TData *data;	unsigned long int keysLength;	unsigned long int dataLength;	unsigned long int itemCount;	public:	TData& operator[]( TKey key );	dict();	~dict();};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 ) {		this->keys = (TKey*) realloc( this->keys, ( this->itemCount + 10 ) * sizeof( TKey ) );		this->data = (TData*) realloc( this->data, ( this->itemCount + 10 ) * sizeof( TData ) );				this->keysLength += 10;		this->dataLength += 10;	}		this->itemCount++;		// Both of these give seg faults	this->keys[ this->itemCount - 1 ] = key;	//this->keys[0] = "Hello";		return this->data[ this->itemCount - 1 ];}template < class TKey, class TData >dict< TKey, TData >::dict( ){	this->keys = (TKey*) malloc( 1 * sizeof( TKey ) );	this->data = (TData*) malloc( 1 * sizeof( TData ) );		this->keysLength = 1;	this->dataLength = 1;	this->itemCount = 0;}template < class TKey, class TData >dict< TKey, TData >::~dict( ){	free( this->keys );	free( this->data );}int main ( int argv, char *argc[] ){	dict< string, int > dict1;	dict1["12321"] = 12;	return 0;}