1
The Waste Land / C++ garbage
« on: December 20, 2006, 09:42:55 am »
#include<iostream>
#define NULL 0
using namespace std;
template<typename T>class Vector
{
T* Data;
void Swap(int pos1, int pos2)
{
if ( pos1 < Size && pos2 < Size )
{
T temp = Data[pos1];
Data[pos1] = Data[pos2];
Data[pos2] = temp;
}
else
throw "ERROR::VECTOR::SWAP invalid index";
}
public:
int Size;
Vector()
{
Size = 0;
Data = NULL;
}
~Vector()
{
delete Data;
Data = NULL;
Size = 0;
}
T operator [] (int index)
{
if ( index < Size )
return Data[index];
else
throw "ERROR::VECTOR::[] invalid index";
}
void Insert(T data)
{
T* NewData = new T[Size + 1];
for ( int i = 0; i < Size; i++ )
{
NewData = Data;
}
NewData[Size] = data;
Data = NewData;
Size++;
}
//sorts descending for UpDown = 0 and ascending otherwise
void Sort(int DownUp = 0)
{
if ( DownUp == 0 )
{
for ( int i = 0; i < Size; i++ )
{
for ( int j = i + 1; j < Size; j++ )
{
if ( Data > Data[j] )
{
Swap(i,j);
}
}
}
}
else
{
for ( int i = 0; i < Size; i++ )
{
for ( int j = i + 1; j < Size; j++ )
{
if ( Data < Data[j] )
{
Swap(i,j);
}
}
}
}
}
};
void main()
{
Vector<int> MyVector;
int temp;
try
{
for ( int i = 0; i < 10; i++ )
{
cout << "Enter number " << i << ": ";
cin >> temp;
MyVector.Insert(temp);
}
MyVector.Sort();
cout << endl;
for ( int i = 0; i < MyVector.Size; i++ )
{
cout << MyVector << endl;
}
}
catch( char* ex )
{
cout << ex << endl;
}
}
#define NULL 0
using namespace std;
template<typename T>class Vector
{
T* Data;
void Swap(int pos1, int pos2)
{
if ( pos1 < Size && pos2 < Size )
{
T temp = Data[pos1];
Data[pos1] = Data[pos2];
Data[pos2] = temp;
}
else
throw "ERROR::VECTOR::SWAP invalid index";
}
public:
int Size;
Vector()
{
Size = 0;
Data = NULL;
}
~Vector()
{
delete Data;
Data = NULL;
Size = 0;
}
T operator [] (int index)
{
if ( index < Size )
return Data[index];
else
throw "ERROR::VECTOR::[] invalid index";
}
void Insert(T data)
{
T* NewData = new T[Size + 1];
for ( int i = 0; i < Size; i++ )
{
NewData = Data;
}
NewData[Size] = data;
Data = NewData;
Size++;
}
//sorts descending for UpDown = 0 and ascending otherwise
void Sort(int DownUp = 0)
{
if ( DownUp == 0 )
{
for ( int i = 0; i < Size; i++ )
{
for ( int j = i + 1; j < Size; j++ )
{
if ( Data > Data[j] )
{
Swap(i,j);
}
}
}
}
else
{
for ( int i = 0; i < Size; i++ )
{
for ( int j = i + 1; j < Size; j++ )
{
if ( Data < Data[j] )
{
Swap(i,j);
}
}
}
}
}
};
void main()
{
Vector<int> MyVector;
int temp;
try
{
for ( int i = 0; i < 10; i++ )
{
cout << "Enter number " << i << ": ";
cin >> temp;
MyVector.Insert(temp);
}
MyVector.Sort();
cout << endl;
for ( int i = 0; i < MyVector.Size; i++ )
{
cout << MyVector << endl;
}
}
catch( char* ex )
{
cout << ex << endl;
}
}