INTERNET
 :
  |    

/

, . /

++.

 
... 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 

//

template <class T> T* DArray<T>::operator[](int i)

{ if(i<0||i>=size) return NULL;

if(data[i]==NULL) data[i]=new T;

return data[i]; }

void main()

{ DArray<int> a(10); // int

int x=5,y=99,z=7;

a+&x; a+&y; a+&z; //

int k=*a[1];} // 7

//----------------------------------------------------------------------------

//4.

//1.

//2. ".

template <class T> class DArray

{ private:

T **data;

int size;

public:

DArray(int _size);

~DArray();

T* Min();

T* operator[](int i);};

template <class T> DArray<T>::DArray(int _size)

{ size=_size;

data=(T**) new char[sizeof(T*)*size];

for(int i=0;i<size;i++) data[i]=NULL; }

template <class T> DArray<T>::~DArray()

{ delete data; }

template <class T> T* DArray<T>::Min()

{ for(int k=0;k<size&&data[k]==NULL;k++); // NULL

int tmp=k++; // tmp

for(;k<size;k++)

if(data[k]!=NULL&&*data[k]<*data[tmp]) tmp=k; //

return data[tmp]; }

template <class T> T* DArray<T>::operator[](int i)

{ if(i<0||i>=size) return NULL;

if(data[i]==NULL) data[i]=new T;

return data[i]; }

void main()

{ DArray<int> a(20); // int

*a[1]=5; *a[4]=3; *a[3]=7; //

int k=*a.Min(); } // 3

//----------------------------------------------------------------------------

//4.

//1.

//3. ( ).

template <class T> class DArray

{ private:

int size;

T **data;

public:

DArray(int _size);

~DArray();

void Sort();

T* operator[](int i); };

template <class T> DArray<T>::DArray(int _size)

{ size=_size;

data=(T**) new char[sizeof(T*)*size];

for(int i=0;i<size;i++) data[i]=NULL; }

template <class T> DArray<T>::~DArray()

{ delete data; }

template <class T> void DArray<T>::Sort()

{ for(int i=0;i<size-1;i++)

for(int j=i+1;j<size;j++)

if(data[i]==NULL||(data[j]!=NULL&&*data[j]<*data[i])) //

{ T* tmp=data[j]; data[j]=data[i]; data[i]=tmp; } } //

template <class T> T* DArray<T>::operator[](int i)

{ if(i<0||i>=size) return NULL;

if(data[i]==NULL) data[i]=new T;

return data[i]; }

void main()

{ DArray<int> a(5); // int

*a[1]=15; *a[4]=9; *a[3]=17; //

a.Sort(); //

int i=*a[0],j=*a[1],k=*a[2]; } //

//----------------------------------------------------------------------------

//4.

//1.

//4. "-

template <class T> class DArray

{ private:

int size;

T **data;

public:

DArray(int _size);

~DArray();

T* FindBin(T &key);

T* operator[](int i);};

template <class T> DArray<T>::DArray(int _size)

{ size=_size;

data=(T**) new char[sizeof(T*)*size];

for(int i=0;i<size;i++) data[i]=NULL; }

template <class T> DArray<T>::~DArray()

{ delete data; }

template <class T> T* DArray<T>::FindBin(T& key)

{ int a=0,b=size-1; //,

while(a<=b)

{ int m=(a+b)/2; //

while(data[m]==NULL&&m>a) m--;

{ if(*data[m]==key) return data[m]; //

if(*data[m]>key) a=m+1; //

else b=m-1; } } //

return NULL; } //

template <class T> T* DArray<T>::operator[](int i)

{ if(i<0||i>=size) return NULL;

if(data[i]==NULL) data[i]=new T;

return data[i]; }

void main()

{ DArray<int> a(15); // int

*a[0]=5; *a[1]=9; *a[2]=17; //

int i=*a.FindBin(17); } //

//----------------------------------------------------------------------------

//4.

//1.

//5. .

template <class T> class DArray

{ private:

int size;

T **data;

public:

DArray(int _size);

~DArray();

T* operator[](int i);};

template <class T> DArray<T>::DArray(int _size)

{ size=_size;

data=(T**) new char[sizeof(T*)*size];

for(int i=0;i<size;i++) data[i]=NULL; }

template <class T> DArray<T>::~DArray()

{ delete data; }

template <class T> T* DArray<T>::operator[](int i)

{ if(i<0||i>=size) return NULL;

if(data[i]==NULL) data[i]=new T;

return data[i]; }

void main()

{ DArray<int> a(30); // int

*a[4]=6; *a[6]=7; *a[1]=2; //

int i=*a[4]; i=*a[6]; i=*a[1]; } //

//----------------------------------------------------------------------------

//4.

//1.

//6. () .

template <class T> class DArray

{ private:

int size;

T **data;

public:

DArray(int _size);

~DArray();

T* operator[](int i);

void Del(int i); };

template <class T> DArray<T>::DArray(int _size)

{ size=_size;

data=(T**) new char[sizeof(T*)*size];

for(int i=0;i<size;i++) data[i]=NULL; }

template <class T> DArray<T>::~DArray()

{ delete data; }

template <class T> T* DArray<T>::operator[](int i)

{ if(i<0||i>=size) return NULL;

if(data[i]==NULL) data[i]=new T

 
... 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 


Copyright © 2005—2007 «RefStore.Ru»