我正在尝试创建一个包含其他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链表之间建立链接的正确方式吗?
发布于 2012-09-19 13:28:42
对于标准容器,您不能指向元素,因为主要设计是元素仅由容器管理。
你所做的是一个容器的容器,在你的例子中是一个dlist< dlist<int> >。
然而,在其他更复杂的情况下,您使用标准库是不走运的……例如,如果您希望元素同时包含在两个独立的链表中,则标准容器没有解决方案,您必须自己编写数据结构代码,或者您必须接受为某些操作支付额外成本。
https://stackoverflow.com/questions/12489019
复制相似问题