STL,迭代器的C++简单实现(二)
Item& operator*() const {return *ptr;}
Item* operator->() const {return ptr;}
ListIter& operator++()
{
ptr = ptr->next();
return *this;
}
bool operator== (const ListIter &i)
{
return ptr == i.ptr;
}
bool operator!= (const ListIter &i)
{
return ptr != i.ptr;
}
};
}
int _tmain(int argc, _TCHAR* argv[])
{
func();
TEST::List
testList;
testList.insert_end(10);
testList.insert_end(20);
testList.insert_end(11);
TEST::ListIter> iter(testList.front());
// 由于链表头为空,所以最好由后往前迭代,第一个节点不能用
for (; iter != testList.end(); )
{
++iter;
std::cout<value()<
} www.2cto.com
testList.display();
return 0;
}
//输出结果:
//Hello
//5
//10
//20
//11
//10
//20
//11
//请按任意键继续. . .