64,631
社区成员
发帖
与我相关
我的任务
分享
#include <list>
using namespace std;
class Entity
{
public:
char *Name;
int Age;
bool operator==(const Entity& cEqual) const
{
return strcmp(Name,cEqual.Name)==0 && cEqual.Age== Age;
}
};
template <typename T>
class TLink
{
public:
void Insert(T t);
void Delete(T t);
void Empty();
int GetCount();
TLink(void);
~TLink();
private:
list<T> *m_list;
};
template <typename T>
TLink<T>::TLink(void)
{
m_list=new list<T>;
//m_list->push_back()
}
template <typename T>
TLink<T>::~TLink()
{
delete m_list;
}
template <typename T>
void TLink<T>::Insert(T t)
{
m_list->push_back(t);
}
template <typename T>
void TLink<T>::Delete(T t)
{
list<T>::iterator iter;
for (iter=m_list->begin();iter!=m_list->end();iter++)
{
if ((T)*iter==t)
{
//这里编译报错了
m_list->erase(t);
}
else
{
iter++;
}
}
}
template <typename T>
int TLink<T>::GetCount()
{
return m_list->size();
}
template <typename T>
void TLink<T>::Empty()
{
m_list->clear();
}
template <typename T>
void TLink<T>::Delete(T t)
{
typename list<T>::iterator iter;//mark
for (iter=m_list->begin();iter!=m_list->end();iter++)
{
if ((T)*iter==t)
{
//这里编译报错了
m_list->erase(t);
}
else
{
iter++;
}
}
}
if ((T)*iter==t)
你*iter 就是T类型为什么还要强制转化。。。