声明:
// 遍历
void traverse(void (*)(T&)); //遍历,依次实施visit操作(函数指针,只读或局部性修改)
template <typename VST> //操作器
void traverse(VST&); //遍历,依次实施visit操作(函数对象,可全局性修改)
定义:
template <typename T> void List<T>::traverse(void (*visit)(T&)) //利用函数指针机制的遍历
{ for (ListNodePosi(T) p = header->succ; p != trailer; p = p->succ) visit(p->data); }
template <typename T> template <typename VST> //元素类型、操作器
void List<T>::traverse(VST& visit) //利用函数对象机制的遍历
{ for (ListNodePosi(T) p = header->succ; p != trailer; p = p->succ) visit(p->data); }
原文地址:http://blog.csdn.net/ganxiang2011/article/details/46137107