如何将构造函数设置为使头和尾指向一个sentinel?(在c++中的单链列表中)



我将sentinel设置为头和尾都指向它的实现不起作用。这是我当前的代码。

template <typename Type>
SentinelList<Type>::SentinelList(): list_size( 0 ) {

SinglyLinkedNode<Type>* sentinel = new SentinelList<Type>;
list_head = sentinel;
list_tail = sentinel;
list_head->next() = list_tail;
list_tail->next() = nullptr;
}

注意:节点类和列表类已经实现,接下来实际上是一个函数调用。编辑:我在最后一个大括号中也得到了这个错误:

[cquery] expected a type

编辑2:新错误:

[cquery] expression is not assignable

next((函数返回一个表示内存地址的值。它不是对Node实例中可以修改的内存位置的引用。它不是一个可以指定给其他值的l值。

考虑更改代码,以便将新值传递给next((方法,例如

list_head->next(list_tail);

这时,您实际上可以将"新"地址值存储在有意义的内存位置。

除此之外,以下内容:

SinglyLinkedNode<Type>* sentinel = new SentinelList<Type>;

是有问题的。sentinel应分配给SinglyLinkedNode<Type>的对象

最新更新