我已经实现了自己的包含模板节点的列表。我将自己的对象传递到节点中。我尝试创建一个将节点移动到列表前面的函数。
这是我的前移函数(在我的名为 DLL 的列表中声明,它位于 DLL.h 中):
void make_head(const T& *ptr) {
if(ptr != head){
if(ptr != tail){
ptr->next->prev = ptr->prev;
ptr->prev->next = ptr->next;
}
else{
ptr->prev->next = NULL;
tail = ptr->prev;
}
head->prev = ptr;
ptr->next = head;
ptr->prev = NULL;
head = ptr;
}
}
这是我调用函数的地方:
for(DLL<Play>::iterator itr=ChangingList.begin(); itr!=ChangingList.end(); itr++){
if( (*itr).getRC() >= 3 ){
ChangingList.make_head((itr));
}
}
我得到 - 错误:没有用于调用“DLL::make_head(Iterator&)”DLL.h:107 的匹配函数:注意:候选者是:void DLL::make_head(const T*) [with T = Play]
如何引用节点的指针来传递参数以正确使用我的函数?