飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 1968|回复: 0

[C/C++] 老孙的迭代器模板

[复制链接]

该用户从未签到

发表于 2009-9-23 21:45:15 | 显示全部楼层 |阅读模式
膜拜一下老孙~~ 这个迭代器模板太强了

我以链表为例 简单的模仿一下

////////////////////////////////////////////////

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;
}
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表