- UID
- 2198
注册时间2005-6-29
阅读权限255
最后登录1970-1-1
副坛主
该用户从未签到
|
膜拜一下老孙~~ 这个迭代器模板太强了
我以链表为例 简单的模仿一下
////////////////////////////////////////////////
template<class Node,typename T>
class AutoPcur
{
public:
Node * pcur;
public:
AutoPcur(Node * node):pcur(node){}
virtual ~AutoPcur(){}
public:
Node * operator++(int)
{
Node * temp = pcur;
pcur = pcur->next;
return pcur;
}
Node * & operator++()
{
pcur = pcur->next;
return pcur;
}
T operator*()
{
return pcur->Data;
}
};
///////////////////////////////////////////
int main(int argc, char* argv[])
{
List list;
list.AppendList('C');
list.AppendList('h');
list.AppendList('i');
list.AppendList('G');
list.AppendList('n');
list.AppendList('a');
list.AppendList('G');
list.InsertList(7,'P');
list.InsertList(8,'Y');
list.AppendList('i');
list.DeleteList(4);
list.DeleteList(9);
AutoPcur<ChainNode,char> node(list.GetList());
for(++node;node.pcur;node++)
{
cout<<*node;
}
cout<<endl;
return 0;
} |
|