INTERNET
 :
  |    

/

, . /

++.

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

T;

return data[i]; }

template <class T> void DArray<T>::Del(int i)

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

if(data[i]==NULL) return;

data[i]=NULL; }

void main()

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

*a[0]=500; *a[1]=98; *a[2]=17; //

a.Del(0); a.Del(1); a.Del(2); } //

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

//4.

//1.

//7. .

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(20); // int

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

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

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

//4.

//2.

//1. .

template <class T> class DArray

{ private:

T *data;

int size,sp;

public:

DArray(int _size);

~DArray();

void operator+(T q);

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

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

{ size=_size; sp=0;

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

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

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

{ delete [] data; }

template <class T> void DArray<T>::operator+(T q)

{ if(sp>=size) return;

for(int k=sp++;k>0&&data[k-1]>q;k--) data[k]=data[k-1]; //

data[k]=q; } //

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

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

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.

//2.

//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 T[size];

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

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

{ delete [] data; }

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

{ int tmp=0;

for(int k=1;k<size;k++)

if(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;

return &data[i]; }

void main()

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

*a[0]=5; *a[1]=3; *a[2]=7; //

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

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

//4.

//2.

//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 T[size];

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

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[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;

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.

//2.

//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 T[size];

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

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;

return &data[i]; }

void main()

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

*a[0]=5; *a[1]=9

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


Copyright © 2005—2007 «RefStore.Ru»