#include <iostream>
using namespace std;
template <class T>
class EArray
{
private:
T* array;
int size;
public:
EArray(int size);
~EArray();
void set_element(int i, const T & newval);
void erase_element(int i);
void add_element(int i, const T & newval);
void push(const T & newval);
void output();
};
template <class T>
EArray<T>::EArray(int l)
{
size = l;
array = new T[size];
}
template <class T>
EArray<T>::~EArray()
{
delete []array;
array = NULL;
}
template <class T>
void EArray<T>::set_element(int i, const T & newval)
{
if (i < size && i >= 0)
{
array[i] = newval;
}
}
template <class T>
void EArray<T>::erase_element(int index)
{
size -= 1;
T* newarray = new T[size];
for (int i=0; i < size; i++)
{
if (i < index)
{
newarray[i] = array[i];
}
else if (i > index)
{
newarray[i-1] = array[i];
}
}
delete [] array;
array = newarray;
}
template <class T>
void EArray<T>::add_element(int index, const T & newval)
{
if (index < size+1 && index >= 0)
size += 1;
T* newarray = new T[size];
for (int i=0; i<size; i++)
{
if (i < index)
{
newarray[i] = array[i];
}
else if (i == index)
{
newarray[i] = newval;
}
else
{
newarray[i] = array[i-1];
}
}
delete [] array;
array = newarray;
}
template <class T>
void EArray<T>::push(const T & newval)
{
size += 1;
T* newarray = new T[size];
for (int i=0; i < size-1; i++)
{
newarray[i] = array[i];
}
delete [] array;
newarray[size-1] = newval;
array = newarray;
}
template <class T>
void EArray<T>:
utput()
{
for (int i=0; i > size; i++)
{
cout << array[i] << endl;
}
}
int main()
{
EArray <int> array(3);
array.set_element(0, 3);
array.set_element(1, 5);
array.set_element(2, 7);
array.output();
cout << "---" << endl;
array.erase_element(1);
array.output();
cout << "---" << endl;
array.push(9);
array.output();
cout << "---" << endl;
array.add_element(1, 100);
array.output();
system("pause >nul");
return 0;
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.