С#
1. Реализовать метод PushBack, который будет добавлять массиву 1 ячейку с указанными данными.
(Чтобы изменить размер обычного массива, используйте метод Array.Resize(data, ...)
2. Реализовать перегрузку [] (не operator [] в шарпе)
3. override Equals, для сравнения двух массив по значениям.
4. По желанию что-то своё (сорт, реверс, ...) Учитывайте что массив шаблонный, могут быть любые типы данных.
Ответы
Ответ:
public class MyArray<T>
{
private T[] data;
public MyArray()
{
data = new T[0];
}
public void PushBack(T item)
{
Array.Resize(ref data, data.Length + 1);
data[data.Length - 1] = item;
}
public T this[int index]
{
get { return data[index]; }
set { data[index] = value; }
}
public override bool Equals(object obj)
{
if (obj is MyArray<T> other)
{
if (data.Length != other.data.Length)
return false;
for (int i = 0; i < data.Length; i++)
{
if (!data[i].Equals(other.data[i]))
return false;
}
return true;
}
return false;
}
public void Reverse()
{
Array.Reverse(data);
}
}
Объяснение:
Вот пример реализации класса массива в C# с указанными методами:
Метод PushBack изменяет размер массива и добавляет элемент в конец.
Перегрузка оператора [ ] позволяет получить и установить значение по индексу.
Метод Equals сравнивает два массива по значениям.
Метод Reverse переворачивает массив. Это дополнительный метод, который я добавил по желанию. Он работает для любого типа данных, так как массив является шаблонным.