0

我已经实现了自己的包含模板节点的列表。我将自己的对象传递到节点中。我尝试创建一个将节点移动到列表前面的函数。

这是我的前移函数(在我的名为 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]

如何引用节点的指针来传递参数以正确使用我的函数?

4

0 回答 0