我正在尝试创建一个包含其他int链表的链表,我需要能够从主链表中访问int链表。
我的问题是如何指出主链表的节点来保存int链表的头部?
我创建了一个静态列表:dlist<Node<int>& > _plist;
我有一个功能:insertToHead ( T const& dataToInsert);
但是从使用链表的类中我只有指向头部的指针,其中包括:Node<T>*
。当我尝试将Node<T>*
传递给T const&
时,它会给我一个错误。
这是使用链表的类的构造函数:
Set::Set(int numArray[], int size)
{
dlist<Node<int> > _plist; //static main list
dlist<int> _intList ; //int list
dlist<int> list; //int list
int i;
for (i=0; i < size; i++)
{
list.insertInOrder(numArray[i]); //insert in to int list
}
this->_intList = list;
this->_plist.insertToHead( _intList.getHead()); //gives an error
};
这是在主列表和int链接列表之间进行链接的正确方法吗?
答案 0 :(得分:0)
使用标准容器时,您无法指向元素,因为主要设计是元素仅由容器管理。
你所做的是一个容器容器,例如你的dlist< dlist<int> >
。
在其他更复杂的情况下,你会对标准库感到不快...例如,如果你想要同时包含在两个独立链表中的元素,那么就没有标准容器和你的解决方案必须自己编写数据结构代码,或者必须接受为某些操作支付额外费用。