聲明:
// 遍歷
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); }