#pragma once
#include <vector>
template<class T>
struct ArryList_DataObj //存储结构体
{
T objData;
struct ArryList_DataObj* Next;
};
template<class T>
class CArryList
{
public:
CArryList()
{
m_pHead = NULL;
}
~CArryList()
{
if(m_pHead != NULL)
{
delete m_pHead;
}
}
int size()
{
int iCount = 0;
if (m_pHead != NULL)
{
iCount++;
}
ArryList_DataObj<T>*End = m_pHead;
while(End ->Next != NULL)
{
End = End->Next;
iCount++;
}
return iCount;
}
int Add(T obj)
{
int ret =-1;
ArryList_DataObj<T>* pObj = new ArryList_DataObj<T>();
pObj->objData = obj;
pObj->Next = NULL;
if(m_pHead == NULL)
{
m_pHead = pObj;
ret = 0;
}
else
{
ArryList_DataObj<T>*End = m_pHead;
while(End ->Next != NULL)
{
End = End->Next;
}
End->Next = pObj;
ret = 0;
}
return ret;
}
int Find(int index,T* resObj)
{
int iCount = 0,ret = -1;
ArryList_DataObj<T>*End = m_pHead;
while(End ->Next != NULL)
{
End = End->Next;
if(iCount == index)
{
*resObj = End->objData;
ret = 0;
break;
}
iCount++;
}
return ret;
}
int Remove(T obj)
{
return 0;
}
private:
ArryList_DataObj<T>* m_pHead;
};