C++ってvector型ってのがあって、
それを使うと配列のサイズ気にせず作れるんですよねー。
でも、vector使い方忘れたし!みたいな!

そんな時用にお手軽に何でもぶち込めるようなものを作りました。

使い方は簡単。
CArray<int> test;
みたいなのも良いし、

typedef struct {
int x;
int y;
} kPos;


と作った構造体を
CArray<kPos> arrPos;

とするだけで簡単に管理出来ます。
追加する時は
arrPos.Add(xxx);
でOK~。

削除する時は
arrPos.RemoveAt(index);
で削除出来ます!

取り出す時は
arrPos.GetItem(index);
で構造体まるまるコピーで取得出来るし、


arrPos.GetItemPtr(index);
でポインタを取り出せますよー。


超簡単でしょ?
かなり便利なのでどうぞ使って下さいなー。
ちなみにこれはヘッダファイルのみで完結してます。

CArray.h等のファイルに保存して利用して下さいー。

ちなみに削除したらそのindexは消えて全部手前につめられるので
気をつけてね~。

以下ソース。
--------------------------------------


#ifndef Array_h

#define Array_h


#include <vector>

#include <string>


using namespace std;


template <class T>

class CArray

{

private:

    std::vector<T> _array;


public:

    CArray()

    {

    }


    virtual ~CArray()

    {

        _array.clear();

    }


    void Clear()

    {

        _array.clear();

    }


    void Add(T addData)

    {

        _array.push_back(addData);

    }


    void RemoveAt(int iIndex)

    {

        typename vector<T>::iterator it = _array.begin();

        it += iIndex;


        _array.erase(it);

    }


    int Length()

    {

        return _array.size();

    }


    T GetItem(int iIndex)

    {

        return _array[iIndex];

    }


    T *GetItemPtr(int iIndex)

    {

        typename vector<T>::iterator it = _array.begin();

        it += iIndex;


        return &*it;

    }

};

#endif