Nisy 发表于 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;
}
页: [1]
查看完整版本: 老孙的迭代器模板