#include <iostream>
constexpr int INVALID_INDEX = -1;
constexpr int MAX_COUNT = 101;
template<typename T>
class MyArray
{
T Array_[MAX_COUNT];
size_t Size_;
public:
void Insert(size_t _Index, T _Data)
{
if (0 == _Index)
{
Array_[_Index] = _Data;
++Size_;
return;
}
for (size_t i = Size_; i > _Index; --i)
{
Array_[i] = Array_[i - 1];
}
Array_[_Index] = _Data;
++Size_;
}
void OrderlyRemove(size_t _Index)
{
for (size_t i = _Index; i < Array_[i + 1]; ++i)
{
Array_[i] = Array_[i + 1];
Array_[i + 1] = NULL;
}
--Size_;
}
void UnorderlyRemove(size_t _Index)
{
Array_[_Index] = NULL;
--Size_;
}
size_t Search(T _Data)
{
for (size_t i = 0; i < Size_; ++i)
{
if (Array_[i] == _Data)
{
return i;
}
}
return INVALID_INDEX;
}
void Print()
{
for (size_t i = 0; i < Size_; ++i)
{
std::cout << Array_[i] << std::endl;
}
}
};
int main()
{
MyArray<int> Arr = {};
Arr.Insert(0, 1);
Arr.Insert(1, 2);
Arr.Insert(2, 3);
Arr.Insert(3, 4);
Arr.UnorderlyRemove(2);
Arr.Print();
}
둥지/알고리즘